时间:2021-05-20
复制代码 代码如下:
package net.kitbox.util;
/**
*
* @author lldy
*
*/
public class Singleton {
private Singleton(){
}
private static class SingletonHolder{
private static Singleton instance = new Singleton();
}
public static void method(){
SingletonHolder.instance._method();
}
private void _method(){
System.out.println("Singleton Method!");
}
public static void main(String[] args) {
Singleton.method();
}
}
此种写法利用了类加载器的加载原理,每个类只会被加载一次,这样单例对象在其内部静态类被加载的时候生成,而且此过程是线程安全的。
其中method()方法封装内部单例对象的私有方法,作为对外接口使用,这样就可以如下调用
复制代码 代码如下:
Singleton.method();
//频繁使用时比常见的 Singleton.getInstance().method()要省事
另外一种方式为采用枚举来实现。
以上就是本文的全部内容了,希望大家能够喜欢。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java多线程中的单例模式一、在多线程环境下创建单例方式一:packagecom.ietree.multithread.sync;publicclassSing
java单例模式的实例详解概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点:
设计模式之单例模式C++实现一、经典实现(非线程安全)classSingleton{public:staticSingleton*getInstance();p
单例模式是最简单的设计模式之一。在实际工程中,如果一个类的对象重复持有资源的成本很高,且对外接口是线程安全的,我们往往倾向于将其以单例模式管理。此篇我们在C++
一、背景最近在学习设计模式,在看到单例模式的时候,我一开始以为直接很了解单例模式了,实现起来也很简单,但是实际上单例模式有着好几个变种,并且多线程中涉及到线程安