1.SingleObject.java
package myTest;
public class SingleObject {
//1.声明一个唯一的静态自身实例,
//注意这是private 只供内部调用,成员变量为不创建对象就能被外部使用,所以用static修饰,共享的
private static SingleObject instance;
/**
* 2. 私有化构造函数使得无法通过构造函数创建实例
*/
private SingleObject(){
}
/**
* 3、访问器:提供其他类访问私有化属性,静态方法static 共享的,外界直接通过 类名.方法名() 即可访问
* @return 返回本类的一个唯一实例,
*/
public static SingleObject getInstance(){
//加上这一层判断是为了性能,因为加锁会对程序的效率有影响,所以多一层判断避免无谓的消耗
if(instance == null){
//加上锁保证多线程下也能够保证唯一实例
synchronized(SingleObject.class){
if(instance == null){
//当实例为空时实例化一个实例
instance = new SingleObject();
}
}
}
return instance;
}
public void Singleton(){
System.out.println("以上是单例模式,而且是加同步锁,线性安全的!!!");
}
}
2.测试类 TestSingleton.java
package myTest;
public class TestSingleton {
public static void main(String[] args) {
SingleObject single =SingleObject.getInstance();
single.Singleton();
}
}
3.结果如下图


本文详细介绍了如何在Java中实现单例模式,包括使用静态内部类和双重检查锁定来确保线程安全性,并展示了如何通过测试类验证其实现。单例模式是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。
(单态类)&spm=1001.2101.3001.5002&articleId=90274461&d=1&t=3&u=82384d3db5694dd8957402884695c99f)
2686

被折叠的 条评论
为什么被折叠?



