Java 单例模式、枚举
发布时间:2020-12-15 05:35:13 所属栏目:Java 来源:网络整理
导读:单例模式 1、在当前系统中,某个类型的对象,最多只能有一个,就需要使用单例设计模式 2、几种格式 // 老汉式 class WeekDay1{ // 1.构造方法私有化 private WeekDay1() {} // 2.创建静态常量对象 public static final WeekDay1 MON = new WeekDay1();} //
单例模式1、在当前系统中,某个类型的对象,最多只能有一个,就需要使用单例设计模式 2、几种格式 //老汉式 class WeekDay1{ //1.构造方法私有化 private WeekDay1() {} //2.创建静态常量对象 public static final WeekDay1 MON = new WeekDay1(); } //饿汉式 class WeekDay2{ //1.构造方法私有化 private WeekDay2() {} //2.创建本类静态私有对象 private static WeekDay2 Mon = new WeekDay2(); //3.对外提供私有对象的访问 public static WeekDay2 getInstance() { return Mon; } } //懒汉式 class WeekDay3 { //1.构造方法私有化 private WeekDay3(){} //2.声明本类私有对象 private static WeekDay3 Mon; //3.判断并创建对象 public static WeekDay3 getInstance(){ if(Mon==null){ Mon = new WeekDay3(); } return Mon; } } 3、问题:单例模式会不会产生线程安全问题?如何解决?会不会影响效率?如何提升效率? 单例模式的懒汉式会产生线程安全问题,可以使用同步代码块解决,效率问题看下面代码 class WeekDay3 { //1.构造方法私有化 private WeekDay3(){} //2.声明本类私有对象 private static WeekDay3 Mon; //3.判断并创建对象 public static WeekDay3 getInstance(){ //因为只有第一次才会判断,所以再判断一次可以提高效率 if(Mon==null) { //加同步代码块可以解决线程不安全的问题,但效率会变低 synchronized (WeekDay3.class) { if(Mon==null){ Mon = new WeekDay3(); } } } return Mon; } } 枚举1、什么是枚举? 描述对象个数有限的类 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Java的MyBatis框架中MyBatis Generator代码生成器
- java – 加载没有Class.forName的JDBC驱动程序
- java – 无法使用12c jar创建Eclipse数据源到Ora
- java – Apache Pivot的可视GUI设计器
- 条件空检查的Java NullPointerException
- java – JSR 303自定义约束覆盖
- java HashMap,TreeMap与LinkedHashMap的详解
- 详解使用spring boot admin监控spring cloud应用
- java – Spring-mvc控制器和异常处理
- java – 正确显示(抛光)字符
热点阅读