单子模式修改。进来看看。 本帖最后由 java2000_net 于 2008-08-04 16:03:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private static Resoure res=new Resoure();public static Resource getResource(){retrue res;}} 单态有两种形式:1.饿汉式:public class Singleton{ // 在自己内部定义一个自己的实例 // 注意,这个是private 只供内部调用 private static Singleton instance = new Singleton(); //将构造函数设为私有 private Singleton(){ } // 静态工厂方法,提供一个供外部使用得到对象的静态方法 public static Singleton getInstance(){ return instance; } }2. 懒汉式: public class Singleton{ private static Singleton instance = null; private Singleton(){ } public static synchronized Singleton getInstance (){ if(instance==null) instance = new Singleton(); return instance; }} public class Singleton { private static final Singleton instance = new Singleton(); private Singleton(){} public static Singleton getInstance(){ return instance; } }这是另一种单例模式。 第一种:public class Singleton { private volatile static final Singleton instance = null;private Singleton(){} public static Singleton getInstance(){ if(instance==null) { synchronized(Singleton.class) { if(instance==null) instance = new Singleton(); } } return instance;} } 第二种:public class Singleton { private Singleton(){} private static class SingletonInner { static Singleton instance = new Singleton();}public static Singleton getInstance(){ return SingletonInner.instance; } }两种方法各有优缺点,看楼主自己选择! public class Singleton { private static Singleton instance = null; private static Integer count = 0; private Singleton() { } public static Singleton getInstance() { if (instance == null) { synchronized (count) { if (count == 0) { instance = new Singleton(); count = 1; } else { return instance; } } } return instance; }}可以添加一个计数器变量count,这样只有第一个占用的才创建新实例,以后的线程都会返回这个实例了 请高手出山!构造器,abstract,继承!可补加分!!! 只用JAVA做个学生选课系统…… 位操作的问题 JAVA编程思想第四版国内多长时间才会有? 在eclipse中可以连接到oracle,用eclipse.exe打包成jar后连接不上?? 如何判断一个路径是否存在阿 忘了!tab在java String 中的转义是啥? 在什么盘中可以找到 JAVA 编译器JDK1.3 OR 1.4 深入了解java 如何实现这个算法? 一个jsp中的小问题;答完结贴;谢谢了 windows自带的任务计划运行java程序跟直接双击运行java程序不能达到同一效果
public static Resource getResource(){
retrue res;
}
}
1.饿汉式:
public class Singleton{
// 在自己内部定义一个自己的实例
// 注意,这个是private 只供内部调用
private static Singleton instance = new Singleton();
//将构造函数设为私有
private Singleton(){
}
// 静态工厂方法,提供一个供外部使用得到对象的静态方法
public static Singleton getInstance(){
return instance;
}
}
2. 懒汉式: public class Singleton{
private static Singleton instance = null;
private Singleton(){
}
public static synchronized Singleton getInstance (){
if(instance==null)
instance = new Singleton();
return instance;
}
}
private static final Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}这是另一种单例模式。
public class Singleton { private volatile static final Singleton instance = null;private Singleton(){} public static Singleton getInstance(){
if(instance==null) {
synchronized(Singleton.class) {
if(instance==null)
instance = new Singleton();
}
}
return instance;
} } 第二种:
public class Singleton {
private Singleton(){} private static class SingletonInner {
static Singleton instance = new Singleton();
}
public static Singleton getInstance(){
return SingletonInner.instance;
} }两种方法各有优缺点,看楼主自己选择!
private static Singleton instance = null;
private static Integer count = 0;
private Singleton() { }
public static Singleton getInstance() {
if (instance == null) {
synchronized (count) {
if (count == 0) {
instance = new Singleton();
count = 1;
} else {
return instance;
}
}
}
return instance;
}
}可以添加一个计数器变量count,这样只有第一个占用的才创建新实例,以后的线程都会返回这个实例了