Java学习笔记之---单例模型
Java学习笔记之---单例模型
单例模型分为:饿汉式,懒汉式
(一)要点
1.某个类只能有一个实例
2.必须自行创建实例
3.必须自行向整个系统提供这个实例
(二)实现
1.只提供私有的构造方法
2.含有一个该类的静态私有对象
3.提供一个静态的公有方法用于创建,获取静态私有对象
(三)饿汉式
在对象创建过程中实例化
- public class EHan {
- //私有构造函数
- private EHan(){
- }
- //创建该类型的私有静态实例
- private static EHan ehan=new EHan();
- //创建该类型的公有静态方法,返回静态实例对象
- public static EHan getehan(){
- return ehan;
- }
- }
- class EHanTest{
- public static void main(String[] args){
- EHan one=EHan.getehan();
- EHan two=EHan.getehan();
- System.out.println(one==two);
- }
- }
运行结果:true
(四)懒汉式
静态公有方法中实例化
- public class EHan {
- //私有构造函数
- private EHan(){
- }
- //创建该类型的私有静态实例
- private static EHan ehan=null;
- //创建该类型的公有静态方法,返回静态实例对象
- public static EHan getehan(){
- if(ehan==null){
- ehan=new EHan();
- }
- return ehan;
- }
- }
- class EHanTest{
- public static void main(String[] args){
- EHan one=EHan.getehan();
- EHan two=EHan.getehan();
- System.out.println(one==two);
- }
- }
运行结果:true
(五)懒汉式PK饿汉式
1.饿汉式比懒汉式块
2.饿汉式线程安全,懒汉式存在线程风险
(六)单例模型的优点
1.在内存中只有一个对象,节省内存空间
2.避免频繁的创造和销毁对象,提高性能
3.避免对共享资源的多重占用
(七)单例模型的缺点
1.扩展比较困难
2.如果实例化后的对象长期不利于,系统将默认为垃圾进行回收,造成对象状态丢失
Java学习笔记之---单例模型的更多相关文章
- PowerMock学习笔记,对单例的测试方法
对单例进行mock 单例类 public class PmModelHandler { // 包含要mock掉的成员变量 private static LogService logger = LogS ...
- java新手笔记12 单例
1.单例 package com.yfs.javase; public class Singleton { //private static final Singleton single = new ...
- SpringMVC学习笔记:单例与并发问题
Spring中的Bean默认都是单例(singleton),Spring中Bean的scope属性有五种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
- 【Java】设计模型-五种单例模型
一. 什么是单例模式 只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在. 单例模式有很多好处,它能够 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- java学习笔记14--多线程编程基础1
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...
- java学习笔记6--类的继承、Object类
接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
随机推荐
- Image Paragraph论文合辑
A Hierarchical Approach for Generating Descriptive Image Paragraphs (CPVR 2017) Li Fei-Fei. 数据集地址: h ...
- C#WeakReference弱引用
原文:C#WeakReference弱引用 弱引用:在引用对象的同时,允许垃圾回收该对象. .NET中提供了WeakReference对象来实现这个功能. 对于那些创建便宜但耗费大量内存的对象,即希望 ...
- 流程图浅析MFC架构
http://blog.csdn.net/qq2399431200/article/details/9035315
- 设置windows2008系统缓存大小限制,解决服务器运行久了因物理内存耗尽出僵死(提升权限后,使用SetSystemFileCacheSize API函数,并将此做成了一个Service)
声明: 找到服务器僵死的原因了,原因是虚拟内存设置小于物理内存. 只要虚拟内存设置为系统默认大小就不会出生僵死的现象了. 当时因为服务器内存48G,系统默认虚拟内存大小也是48G, 觉得太占硬盘空间, ...
- Python正则表达式进阶-零宽断言
1. 什么是零宽断言 有时候在使用正则表达式做匹配的时候,我们希望匹配一个字符串,这个字符串的前面或后面需要是特定的内容,但我们又不想要前面或后面的这个特定的内容,这时候就需要零宽断言的帮助了.所谓零 ...
- OpenCv的python环境搭建
1.python的安装参看 http://www.cnblogs.com/samo/p/6734403.html 2.OpenCv安装.opencv2.4.10可以支持vc10/vc11/vc12,o ...
- flask(二)
1.装饰器坑 使用装饰器后,视图函数名字相同问题view function错误问题 1.给装饰器加functiontools 2.反向生成url地址标志,指定endpoint(endpoint必须唯一 ...
- screen命令使用简单说明
首先用screen [-S]命令建立一个session,然后就可以在这个session中建立多个window了.使用screen [-S]可以建立多个session,而每个session又可以建立多个 ...
- Nginx学习笔记---服务与集群
一.集群 什么是集群 服务器架构集群:多台服务器组成的响应式大并发,高数据量访问的架构体系. 特点: (1)成本高 (2)能够降低单台服务器的压力,使用流量平均分配到多台服务器 (3)使网站服务架构更 ...
- Hexo+NexT(五):Hexo第三方插件提供功能及配置
本篇文章介绍NexT中通过第三方实现的功能,有的需要通过额外的插件,有的需要通过第三方提供的功能.这些功能丰富了网站内容,弥补了原生静态网站的不足. Hexo博客专题索引页 增加百度统计分析功能 访问 ...