易截截图软件、单文件、免安装、纯绿色、仅160KB

Effective Java 学习笔记(3)

在实现singleton模式时,我们有以下几种方法。 1. public static final 字段加上private 的构造函数。 public class Singleton{
            public static final Singleton INSTANCE = new Singleton();
            private Singleton() { ... }
} 这种方法简单,其中的字段让人一目了然就知道这个类是Singleton模式,用final关键字确保这个变量在初始化后就不会再被更改,但要注意的是小心防止少数别有用心的程序使用AccessibleObject.setAccessible来访问私有构造函数,这时可以在私有构造函数中判断当创建第二个实例的时候抛出一个异常。 2. private static final 字段加上private 的构造函数再加上public 静态工厂函数 public class Singleton{
            private static final Singleton INSTANCE = new Singleton();
            private Singleton() { ... }
            public static Singleton getInstance{}{return INSTANCE;} } 这种方式不用担心性能问题,因为现在的JVM会把绝大多数的静态工厂函数改为内联。此外,这种方法还可以在不改变API的情况下对返回值进行改变,即在以后根据需要是否返回第二个实例,或是每个线程一个实例。 对于以上两种方法在串行化的时候要注意,不能仅仅只加上implements Serializable接口,这样会导致每次反序列化的时候创建一个新对象,这样就不是真正的singleton了,解决这个问题的方法是在声明的时候对每一个final字段加上transient关键字,然后再实现一个readResolve方法。 private Object readResolve() {
           return INSTANCE;
} 对于java 1.5后的版本,实现singleton模式最好的方法是用枚举。
public enum Singleton {
              INSTANCE; } 这种方法没有上面说的缺点,是最优的方法。


相关文档:

Java线程同步示例

文章用实例代码展示了Java中多线程访问共享资源
时线程同步
的重要性。
分别通过在两个线程中同时访问(调用get_id*方法)经过同步处理(lock及Synchronized)的共享资源(tmp)及未经过同步处理的共享资源(tmp)来说明同步处理的的作用。
main中分两部分:
1)前半部分,non-synchronization部分用来测试没有做同步处理的代码 ......

flex 和 java (web)的组合开发

 1、开发环境:在myeclipse7.0中整合flex plup3.0, 安装flex plup3.0时,选myeclipse 中eclipse的目录,然
      找到flex 的安装好的目录,将plugins和features对应到拷到myeclipse里面 eclipse相应的目录下。
2、创建 flex和 java (Web)的工程(通信框架用blazeds.war):
  &nb ......

Java数据库连接池类源码

来自:http://www.cnblogs.com/shiyangxt/archive/2008/07/30/1256813.html
环境:MyEclipse
 
数据库:mysql
 
首先新建Java项目,然后新建两个类,一个数据库连接池类,一个测试类。
 
分别命名ConnectionPool,ConnectionPoolTest。
 
然后新建一个配置文件,命名:dbpool.properties。
&n ......

java 使用相对路径读取文件

http://www.blogjava.net/flysky19/articles/93492.html
1.java project环境,使用java.io用相对路径读取文件的例子:
 *目录结构:
  DecisionTree
            |___src
             ......

JAVA关键字详解

JAVA关键字详解
1 final数据:
   1>对于基本类型前加以final修饰,表示被修饰的变量为常数,不可以修改。一个既是static有是final的字段表示只占据一段不能改变的存储空间。
   2>final用于对象应用时,final使应用恒定不变。一旦引用被初始化指向一个对象,就无法再把它指向另一个对象。
& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号