惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - Franky
有赞技术团队
有赞技术团队
博客园 - 司徒正美
量子位
N
News and Events Feed by Topic
T
Threatpost
Last Week in AI
Last Week in AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
酷 壳 – CoolShell
酷 壳 – CoolShell
C
CERT Recently Published Vulnerability Notes
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
I
Intezer
人人都是产品经理
人人都是产品经理
T
Tenable Blog
IT之家
IT之家
雷峰网
雷峰网
腾讯CDC
博客园 - 聂微东
V
Visual Studio Blog
S
SegmentFault 最新的问题
Scott Helme
Scott Helme
Spread Privacy
Spread Privacy
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
N
Netflix TechBlog - Medium
J
Java Code Geeks
宝玉的分享
宝玉的分享
F
Full Disclosure
WordPress大学
WordPress大学
A
Arctic Wolf
小众软件
小众软件
AWS News Blog
AWS News Blog
Attack and Defense Labs
Attack and Defense Labs
NISL@THU
NISL@THU
AI
AI
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
N
News | PayPal Newsroom
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org

博客园 - CoderDream

[设计模式]模板模式 Windows8下通过IPv4地址访问Tomcat RESTful最佳实践之基于 jersey 的增删改查 Maven 版 JPA 最佳实践 Android项目实战手机安全卫士(02) Android项目实战手机安全卫士(01) 推荐十一个很酷的实用网站 类 ObjectOutputStream的writeObject()方法的中英文对照 2006.08.21网摘 20060818网摘 20060702 长沙职位信息 20060702 网摘 20060630 网摘 Eclipse 入门与提高 第01章 基础知识 今天答辩, 第二阶段(标准阶段)已经过去了! 只剩下最后4个月了! 亿阳信通股份有限公司 J2EE软件设计工程师 上海掌上灵通咨询有限公司 Java软件开发工程师 20060519网摘
[设计模式]单例模式
CoderDream · 2016-03-29 · via 博客园 - CoderDream

应用场景

如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式。这种情况在应用中经常碰到,例如缓存池、数据库连接池、线程池、一些应用服务实例等。在多线程环境中,为了保证实例的唯一性其实并不简单。

最简单的单例

源代码

Singleton.java

package pattern.part2.chapter3;

public class Singleton {
    private static Singleton instance = new Singleton();

    // other useful fields...

    private Singleton() {
    }

    public static Singleton getInstance() {
        return instance;
    }

    // other useful methods...
}

代码注解

Singleton类只有一个构造方法,它是被private修饰的,客户对象无法创建该类实例。
我们为此单例实现的全局访问点是public static Singleton getInstance()方法。
注意:instance变量是私有的,外界无法访问。

此实现是线程安全的,当多个线程同时去访问该类的getInstance()方法时,不会初始化多个不同的对象,这是因为,JVM(Java Virtual Machine)在加载此类时,对于static属性的初始化只能由一个线程执行且仅一次。