懒汉模式、饿汉模式

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

饿汉模式:单例类的字节码文件加载到方法区的时候 单例(唯一对象)就被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对象。即用才去建,较省内存。

猜你喜欢

转载自www.cnblogs.com/aboutlanander/p/12182178.html