java单例模式的两种形式
两种形式:
1, 饿汉式单例类
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
2. 懒汉式单例类
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
一般来说第一种比较安全。建议都用第一种。
相关文档:
前一段时间试着用这三种语言简单的写了关于文件拷贝的程序,发现c#和python的api惊人的相似,对于文件的操作这两种语言非常的方便。都没有加异常的处理
C#源代码:
public static void CopyFile(string source, string destination)
& ......
String fm = "46+5*(120-37)";
String[] item = fm.split("[+-/*/()]");
for(String it: item){
System.out.print(it+" ");
}
正则表达式中 转义: * ==> /* ......
网上看到一些刚开始学或是还没有开始学java的同学,经常问:“这个java,我该怎么学,学什么呢?”,我想给他们说一下。可是我的能力有限。所以我也不好对某个同学具体的说什么,可是,今天在网上看到一张图片。感觉对大家提出的这个问题有个很好的解释说明。
  ......
利用PowerShell脚本方便Java学习
我是一名Java菜鸟,在这个入门阶段里免不了要反复的使用javac xx.java和java xx来运行和测试自己的程序。烦了……,但也得憋着。
今天心情不好,换了个Win7(换个系统,换个心情)。当我依旧按 ......
1)垃圾回收的两个关键要素:
发现无用对象。
回收无用对象的内存空间。
2)6种垃圾回收算法:
引用计数法,tracing 算法,compacting算法,copying 算法,generation算法,adaptive算法。
3)detail:
引用计数法(Reference Counting Collector)
引用计数法是唯一没有使用根集的垃圾回收的 ......