//简单懒汉式
public class Singleton {
//单例实例变量
private static Singleton instance = null;
//私有化的构造方法,保证外部的类不能通过构造器来实例化
private Singleton() {}
//获取单例对象实例
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
System.out.println("我是简单懒汉式单例!");
return instance;
}
}
//同步法懒汉式
public class Singleton {
//单例实例变量
private static Singleton instance = null;
//私有化的构造方法,保证外部的类不能通过构造器来实例化
private Singleton() {}
//获取单例对象实例
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
System.out.println("我是同步法懒汉式单例!");
return instance;
}
}
//双重锁定懒汉式
public class Singleton {
//单例实例变量
private static Singleton instance = null;
//私有化的构造方法,保证外部的类不能通过构造器来实例化
private Singleton() {}
//获取单例对象实例
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
System.out.println("我是双重锁定懒汉式单例!");
return instance;
}
}
//解决无序写问题懒汉式
public class Singleton {
//单例实例变量
private static Singleton instance = null;
//私有化的构造方法,保证外部的类不能通过构造器来实例化
private Singleton() {}
//获取单例对象实例
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) { //1
Singleton temp = instance; //2
if (temp == null) {
synchronized (Singleton.class) { //3
temp = new Singleton(); //4
}
instance = temp; //5
}
}
}
System.out.println("我是解决无序写懒汉式单例!");
return instance;
}
}
//饿汉式
public class Singleton {
//单例变量 ,static的,在类加载时进行初始化一次,保证线程安全
private static Singleton instance = new Singleton();
//私有化的构造方法,保证外部的类不能通过构造器来实例化。
private Singleton() {}
//获取单例对象实例
public static Singleton getInstance() {
System.out.println("我是饿汉式单例!");
return instance;
}
}
//内部类实现懒汉式
public class Singleton {
private static class SingletonHolder{
//单例变量
private static Singleton instance = new Singleton();
}
//私有化的构造方法,保证外部的类不能通过构造器来实例化。
private Singleton() {
}
//获取单例对象实例
public static Singleton getInstance() {
System.out.println("我是内部类单例!");
return SingletonHolder.instance;
}
}
mem = allocate(); //为Singleton对象分配内存。 instance = mem; //注意现在instance是非空的,但是还没有被初始化。 ctorSingleton(instance); //调用Singleton的构造函数,传递instance.
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有