Java中整数常量池的概念_pipizhen_的博客-CSDN博客_整型常量池
java池_java中的各种池_义翘神州的博客-CSDN博客
池:就是缓存区的意思。缓存区的好处是:程序用起来执行很快,很方便。缺点是:如果没用到,就有点耗费了内存。
1.1、整数常量池
一阶段 Java基础 包装类Interger创建对象 方式二
作用:
java中为了提高程序的执行效率,将[-128, 127]之间256个整数所有的包装对象提前创建好了,类加载时就已经创好了,放在了一个方法区的“整数常量池”当中。
理解:
如果一个整数范围在[-128, 127]里面的整数进行包装,包装时不需要再new对象了,直接从“整数常量池”中取出来
例:
范围在[-128, 127]内的整数,装箱成包装类时,底层不会new对象。共用在整数常量池当中的256个Integer对象。
例如:
Integer a = -128;
Integer b = -128;
则a和b指向整数常量池中的同一个对象,不会new两次对象
/**测试整数池*/
@Test
void testIntegerCache(){
/*Interger类在加载时会在内存中创建一个整数池,池中
* 会默认存储-128~127*/
//JDK提供了一种自动装箱机制,底层会自动将100转换为Integer
Integer a = 100;//IntegervalueOf(100)
Integer b = 100;//a==b
System.out.println(a==b);//true 用的是同一个对象,地址值相同,因为100不在-128~127范围内
Integer c = 200;
Integer d = 200;//c==d
System.out.println(c==d);//false new了两次对象,地址值不同,因为200不在-128~127范围内
/*==两边如果是八大基本类型,默认比较的是数值
==两边如果是引用类型,默认比较的是地址值*/
}
1.2、字符串常量池:
一阶段API String类创建String字符串对象方式一
利用String创建字符串对象,第一次创建会存在堆内存的常量池中;第二次创建相同的字符串对象时会直接使用,不会再次创建 两次的地址值相同
2、线程池:
作用:
限制系统中执行线程的数量
1、提高效率 创建好一定数量的线程放在池中,等需要使用的时候就从池中拿一个,这要比需要的时候创建一个线程对象要快的多。
2、方便管理
在系统环境下