私有静态内部类实现线程安全的单例

简介: 利用私有静态内部类实现线程安全的单例


public class Singleton
{
	//构造器私有化
	private Singleton(){ }
	
	/**
	 * 获取对象实例的静态方法
	 * @return
	 */
	public static Singleton getInstance()
	{
		return SingletonHolder.instance;		
	}
	
	//静态内部类,在第一次被引用时被加载
	private static class SingletonHolder
	{
		private static Singleton instance = new Singleton();
	}
	
	public static void main(String args[])
	{
		Singleton instance1 = Singleton.getInstance();
		Singleton instance2 = Singleton.getInstance();
		System.out.println(instance1 == instance2);
		
		
	}
}

目录
相关文章
|
3月前
|
设计模式 存储 安全
八种创建单例模式的方式-懒汉式与饿汉式及枚举
八种创建单例模式的方式-懒汉式与饿汉式及枚举
69 2
|
7天前
|
Java
JAVA基础--内部类和静态内部类、单例模式---静态内部类剖析
JAVA--内部类和静态内部类、单例模式---静态内部类剖析
28 9
|
5月前
|
Java
内部类(下)匿名内部类,静态内部类的使用
内部类(下)匿名内部类,静态内部类的使用
39 0
|
5月前
静态内部类,实例内部类
我们创建了静态内部类,那么我们怎么能获取静态内部类对象呢? 这里我们知道静态变量是不依赖于对象的,所以不用先new一个Outclass1对象(讲到实例内部类会用),可以直接new OutClass.InnerClass()。
29 0
|
6月前
|
缓存 安全 Java
静态内部类单例
静态内部类单例
|
6月前
|
Java
5.1 内部类与外部类的关系:内部类的实例化方式
5.1 内部类与外部类的关系:内部类的实例化方式
78 0
|
6月前
|
设计模式 Java
3.2 内部类的类型:静态内部类
3.2 内部类的类型:静态内部类
43 0
|
7月前
|
安全 Java
常用的线程安全的类有哪些
Java并发包(java.util.concurrent)中还提供了更多的线程安全类和工具,如Semaphore、CountDownLatch、CyclicBarrier、ReadWriteLock等,可以根据具体的需求进一步选择。在并发编程中,正确使用和理解这些线程安全的类和工具是非常重要的,能够有效地提高程序的并发性能和安全性
314 0
|
Java 编译器 Android开发
普通内部类持有外部类引用的原理
内部类虽然和外部类写在同一个文件中, 但是编译完成后, 还是生成各自的class文件,内部类通过this访问外部类的成员。 1、编译器自动为内部类添加一个成员变量, 这个成员变量的类型和外部类的类型相同, 这个成员变量就是指向外部类对象(this)的引用; 2、编译器自动为内部类的构造方法添加一个参数, 参数的类型是外部类的类型, 在构造方法内部使用这个参数为内部类中添加的成员变量赋值; 3、在调用内部类的构造函数初始化内部类对象时,会默认传入外部类的引用。
java内部类——静态内部类
java内部类——静态内部类