码迷,mamicode.com
首页 > 其他好文 > 详细

懒汉模式、饿汉模式

时间:2020-01-12 13:21:56      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:system   oid   main   out   单例类   color   turn   并发   内存   

懒汉模式与饿汉模式:单例模式,仅有仅用一个对象!

饿汉模式:单例类的字节码文件加载到方法区的时候 单例(唯一对象)就被new出来了。

Public class Singleton{
   public static int num=10;

   Private Singleton(){

}

Private static Sington sing = new Singleton();

   Public static Singleton genInstance(){

   Return sing;

}

}

Public class Test{

   Public static void main(String[] args){

     System.out.println(Singleton.num);

   }

}

Test一经运行,类调用Singleton.num,就创建对象new Singleton()放在内存的方法区;

再用的时候也许一年之后,但是该对象依然是自己在方法区。即一用类就创建对象占据内存。好处在于多线程时,避免高并发性

 

懒汉模式:什么时候 调用方法(getInstance)得到对象 什么时候才去new哪个唯一对象。

Public class Singleton2{
   public static int num=10;

   Private Singleton2(){

   

}

Private static Sington2 sing2;

   Public static Singleton2 genInstance(){

      If(sing2==null){

      sing2= new Singleton2();

      }

   Return sing2;

}

}

 

测试一下。

Public class Test{

   Public static void main(String[] args){

     System.out.println(Singleton2.num);

   }

}

运行并未用Public static Singleton2 genInstance()方法,但需要对象sing2时,才去走if语句创建sing2对象。即用才去建,较省内存。

懒汉模式、饿汉模式

标签:system   oid   main   out   单例类   color   turn   并发   内存   

原文地址:https://www.cnblogs.com/aboutlanander/p/12182178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!