Archive | 三月, 2013

并发之synchronize归纳

关于synchronized关键字,不多解释,简单归纳备注下。

  • 锁的对象:对于实例同步方法,锁是当前实例对象。对于静态同步方法,锁是当前对象的Class对象。对于同步方法块,锁是Synchonized括号里配置的对象。
  • ?使用synchronized关键字,有两种语法结构:同步代码块和同步方法。
  • synchronized关键字并不是方法签名的一部分。所以当子类覆写父类中的同步方法或是接口中声明的同步方法的时候,synchronized修饰符是不会被自动继承的。
  • 构造方法不可能是真正同步的(尽管可以在构造方法中使用同步块)。
  • 同步代码块被认为比同步方法更加的基础。如下两种声明方式是等同的:

  • 同步实例方法在其子类和父类中使用同样的锁。
  • 内部类方法的同步却独立于其外部类,[......]

阅读全文

Comments { 0 }

Data Mining 笔记关联规则之Apriori算法笔记

一、前言
上篇文章中对频繁项和关联规则做了一般性描述。知道关联规则的挖掘其实就是从事务、关系数据中发现频繁项集、再考察项之间的关联。
项集itemset生成是一个很费力力气的事情,如果事务中有d项待考察,则理论上会有2^d个candidate itemset。
generate-itemset

实际上并不是并不是所有的都candidate itemsets都需要考察。因为频繁项集有这样的性质

  • ?性质1:频繁项集的子集必为频繁项集。
  • ?性质2:非频繁项集的超集一定是非频繁的。

?二、Apriori算法

Apriori算法运用性质1,通过已知的频繁项集构成长度更大的项集,并将其称为潜在频繁项集。潜在频繁k项集的集合Ck?是指由有可能成为频繁k项集的项集组成的集合。以后只需计算潜在频繁项集的支持度,而不必计算所有不同项集的支持度,因此在一定程度上减少了计算量。

[......]

阅读全文

Tags: , , ,

Comments { 1 }

Java 类加载器 ClassLoader笔记

1. java.lang.ClassLoader类的作用

根据类名称,查找字节码,根据字节码生成Java类。即根据class name,查找class的字节码,生成Class实例。

java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个 Java 类,即?java.lang.Class类的一个实例。除此之外,ClassLoader还负责加载 Java 应用所需的资源,如图像文件和配置文件等。

2. ?ClassLoader 中与加载类相关的方法

方法

说明

getParent()

返回该类加载器的父类加载器。

loadClass(String name)

加载名称为?name的类,返回的结果是?java[......]

阅读全文

Tags: , ,

Comments { 0 }

Spring IOC之Bean的定义和解析

理解spring ?IOC 就是能把对象之间的依赖关系给配出来,像下面最典型的一个配置文件。

定义了一个bean ?dataSource,并把它注入到另外一个bean sessionFactory中。

这里尝试整理下一个死的配置文件如何在spring中变出活的对象,并且是一个个互相有关系的对象。

首先要关注下定义在 org.springframework.context 包下的ApplicationContext 。正是contenxt为是 Spring 提供一个运行时的环境,发现每个 Bean 之间的关系,为它们建立这种关系并且要维护好这种关系。IOC容器指的应该就是这种关系集合。

ApplicationContext 是 Context 的顶级父类,可以看到他有多少种实现:

sping_applictionContext

容器初始哈[......]

阅读全文

Tags: , , ,

Comments { 2 }

Spring IOC之Bean的创建

上一篇文章讲述了从配置文件到Bean定义的过程。容器初始化完成后,在IOC容器内建立了BeanDefinition,具体的依赖关系还没有注入。当使用者第一次向IOC容器请求Bean时,IOC容器才会对这个Bean注入的依赖关系。在依赖注入完成后,使用者调用getBean方法来获得bean。不难想象这个bean创建的过程一定是一个递归的的。当我们要创建一个bean时,会递归的在context中查找需要的bean来递归创建;在依赖注入的时候,一直要获取当前bean依赖的bean,对依赖的bean进行创建和注入。

  1. ?AbstractBeanFactory ?getBean

2.??doGetBean

3. ??AbstractAutowire[......]

阅读全文

Tags: , ,

Comments { 1 }