易截截图软件、单文件、免安装、纯绿色、仅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 double 相加的怪事情

(本文转载自:http://hi.baidu.com/edilyxin/blog/item/27dc152aba3e10315343c19c.html)
问题的提出:  
编译运行下面这个程序会看到什么?  
public   class   Test{  
          public   static  ......

Java/JSP中文乱码问题解决心得

Java/JSP中文乱码问题解决心得
自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。
一、Java中文问题的由来
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JS ......

Java 中String类的终极总结


一、不变模式:
一个字符串对象创建后它的值不能改变。
String str1="hello";//创建一个对象hello,不会变;
System.out.println(str1);
str1+=" world!";//两个字符串对象粘粘,系统其实创建了一个新的对象,把Str1的指向改了,指向新的对象;hello就          & ......

Java环境配制

JAVA_HOME:
C:\Java\jdk1.6.0_17
Path:
%JAVA_HOME%\bin
ClassPath:
.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。
JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一
些 Java 的工具需要用到该变量,设置 PATH 和 CLASSP ......

Java6 脚本引擎(用Java调用JS脚本)调用js

Java6 脚本引擎(用Java调用JS脚本)调用js
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import javax.script.Invocable;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
 import javax.script.ScriptException;
 
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号