在JDK5.0里,JVM在启动的时候会实例化9个对象池,这9个对象池分别用来存储8种基本数据类型的包装类对象和String对象。当我们直接用8种基本类型的包装类的对象或用双引号括起来一个字符串时,JVM就要在其对象池里面去找是否有一个相同的对象,如果有,就直接从对象池中拿这个现成的对象,如果没有,就在对象池里面创建一个新的对象。
1、基本类型的包装类对象池
Integer i1 = 5;//5在对象池中取
Integer i2 = 5;
System.out.println(i1==i2);//true,i1和i2都是从对象池中取的同一个对象
而:
Integer j1 = 200;//超过Integer对象池存放数的范围,即:直接赋给一个Integer对象
Integer j2 = 200;
System.out.println(j1==j2);//false
由于Integer对象池只存放从-128--127之间的整数,若超过这个范围,则直接创建一个新的Integer对象!
Java对象池
最新推荐文章于 2024-05-06 19:34:30 发布