当前位置: 首页 > wzjs >正文

学做网站的书嵌入式培训机构哪家好

学做网站的书,嵌入式培训机构哪家好,南宁网站建设推广优化,营销型网站建设试题单例模式(构造器私有) 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,有以下特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 反射可以破坏单例模式…
单例模式(构造器私有)

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,有以下特点:

  • 单例类只能有一个实例。

  • 单例类必须自己创建自己的唯一实例。

  • 单例类必须给所有其他对象提供这一实例。

反射可以破坏单例模式!!!

饿汉式

这种方式比较常用,但容易产生垃圾对象 优点:没有加锁,执行效率会提高。 缺点:类加载时就初始化,浪费内存。

 
package com.lyc.single;//饿汉式单例public class Hungry {//可能会浪费空间private byte[] bytes1= new byte[1024*1024];private byte[] bytes2= new byte[1024*1024];private byte[] bytes3= new byte[1024*1024];private byte[] bytes4= new byte[1024*1024];private Hungry(){​}private static final Hungry instance = new Hungry();//创建对象public static Hungry getInstance(){return instance;}}
 ​
懒汉式

DCL懒汉式:在懒汉式基础上加入双重检验锁,保证线程安全和性能。

 
package com.lyc.single;//懒汉式单例模式public class LazyMan {private LazyMan(){​}private volatile static LazyMan lazyMan;public LazyMan getInstance(){//双重检测锁模式的懒汉式单例,简称:DCL懒汉式if (lazyMan==null){synchronized (LazyMan.class){if (lazyMan==null){lazyMan=new LazyMan();//不是一个原子性操作//1.分配内存给这个对象//2.执行构造方法,初始化对象//3.将这个对象指向这个空间//可能会发生指令重排,导致对象还没初始化完成,就返回了//如果有两个线程在创建对象,可能会造成对象还没初始化完成,就返回了//如果在创建对象时,多个线程同时判断到lazyMan==null,就会创建多个对象//解决方法://1.使用synchronized关键字//2.使用volatile关键字}}}return lazyMan;}//单线程下是安全的//多线程下是不安全的,需要在加锁。}​

静态内部类

 package com.lyc.single;//静态内部类实现public class Holder {private Holder(){​}public static Holder getInstance(){return  InnerClass.holder;}public static class InnerClass{private static final Holder holder = new Holder();}}
 

单例不安全,因为有反射

枚举

 package com.lyc.single;​import java.lang.reflect.Method;​//enum是什么,枚举本身也是一个Class类public enum EnumSingle {INSTANCE;​public EnumSingle getInstance() {return INSTANCE;}}​package com.lyc.single;​import java.lang.reflect.Constructor;import java.lang.reflect.Method;​public class SingleTest {public static void main(String[] args) throws Exception{EnumSingle instance = EnumSingle.INSTANCE;Constructor<EnumSingle> declaredConstructor = EnumSingle.class.getDeclaredConstructor(String.class, int.class);declaredConstructor.setAccessible(true);EnumSingle instance1 = declaredConstructor.newInstance();System.out.println(instance.hashCode());System.out.println(instance1.hashCode());}}
 ​
http://www.dtcms.com/wzjs/26865.html

相关文章:

  • 58同城建网站怎么做竞价推广托管多少钱
  • 网站开发 技术路线百度人工在线客服
  • 收费的网站怎么做广东公共广告20120708
  • 徐州网站开发兼职网站开发详细流程
  • 营销型网站的建设流程图网络营销专业主要学什么
  • 十堰网络公司排行榜百度seo公司报价
  • 博物馆网站建设的根本意义软件开发工程师
  • wordpress怎么删除某页页眉seo资源网站排名
  • 全网百度seo提高排名费用
  • app开发框架seo外链网
  • 松岗做网站联系电话seo整站优化更能准确获得客户
  • 蓝色科技网站建设搜外滴滴友链
  • 做lgoo的网站一般有哪些app拉新推广项目
  • saas建站系统是怎么实现的网络营销策略有哪几种
  • 软件网站建设公司微信朋友圈推广软文
  • 建站abc论坛北京seo薪资
  • 哪个网站公司做的好去哪里推广软件效果好
  • 做设计用哪个素材网站好百度风云榜官网
  • 龙岗seo网络推广成都seo整站
  • 用自己主机做网站百度一下百度主页度
  • 怎么做网站分析旅游网站的网页设计
  • 做网站的公司都很小吗创建网站的软件
  • 厦门模板建站哪家好网络销售公司
  • 做纸浆的网站关键字广告
  • wordpress插件必备浙江专业网站seo
  • 做网站首页尺寸大小财经新闻最新消息
  • 阿里巴巴国内网站怎么做网络推广教程
  • 力洋网站建设公司最有创意的广告语30条
  • dede手机医院网站模板下载优化网站推广教程排名
  • 域名备案需要什么资料齐三seo顾问