java—单例设计模式
2024-08-27 08:38:22
单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1、构造方法私有化
2、声明一个本类对象
3、给外部提供一个静态方法获取对象实例
什么时候使用?
1、通过在工具类的设计中使用;
2、当一个类中没有属性;
3、该类作为工具类使用非常频繁。
两种方式:
一、饿汉式
package practice1;
//单例模式
public class Test7 {
public static void main(String[] args) {
Singleton s=Singleton.getInstance();
s.method();
}
}
class Singleton{
private static Singleton singleton=new Singleton();//定义时就创建对象
private Singleton(){//构造方法私有化
}
public static Singleton getInstance(){//给外部提供一个全局访问点,静态方法
return singleton;
}
public void method(){//测试方法
System.out.println("method");
}
}
饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以是线程安全的。
二、懒汉式
class Singleton2{
private static Singleton2 singleton2=null;//定义时不直接创建
private Singleton2(){}//构造方法私有化
public static Singleton2 getInstance(){
if(singleton2==null){
singleton2=new Singleton2();
}
return singleton2;
}
public void method(){//测试方法
System.out.println("method");
}
}
最新文章
- js 中的快速排序算法简单实现
- android sqlite datetime demo
- js之滚动置顶效果
- Mysql 基础2
- 前端开发面试题JS2
- ZOJ 3494 (AC自动机+高精度数位DP)
- Keyframes介绍
- php 接口示例
- Lua与javascript的差异
- Ubuntu16.04建立本地更新源
- [JavaScript] requireJS基本使用
- [CF893F] Subtree Minimum Query
- 微信小程序无法定位
- 用JS编写个人所得税计算器
- 批量镜像locator(比如表情模板)
- wc2016鏖战表达式(可持久treap)
- Git 命令操作记录
- svn如何提取文件更新列表
- CH0601 Genius ACM【倍增】【归并排序】
- oracle查看表中数据的大小
热门文章
- 详细介绍jQuery.outerWidth() 函数具体用法
- javase jdk 环境变量 涵义
- ASP.NET 压缩输出的HTML字符
- day29(对象转xml(使用java))
- Hdu4135 Co-prime 2017-06-27 16:03 25人阅读 评论(0) 收藏
- Lib作为“静态库”与“动态库”中的区别
- Scala_针对集合的操作
- iOS cell左滑出现多个功能按钮(IOS8以后支持)
- cxGrid 怎样才能让不自动换行 WordWrap:=false
- 直接端口打印 支持USB接口的打印机吗?解决办法