常量池的理解,8个包装类和String和其他类生成对象的不同之处

这是我这些天对常量池的理解跟大家分享一下,望多多指教批评
在八中包装类中
Byte ,Short ,Integer ,Long ,Character的对象池(常量池)的取值范围是-128到正的127,当超过这个范围的对象会开辟自己的堆内存,Boolean也实现了对象池技术,Double和Float这两种浮点类型的包装类没有实现这个技术。
对象池的创建为了减少频繁创建对象,将一些对象保存在一个容器中,用的时候提取出来不用了在装起来。
String类型当有new创建对象且调用的有参构造方法,会创建两个对象一个存入堆区另一个放在放法区的常量池中,为了避免创建过多的对象占用内存空间,String类中的intern()会查找常量池中是否有和输入的对象equal()一样的如果存在则直接返回该对象,如果不存在先在常量池中创建这个对象然后再返回。
其他类生成的每一个对象都会在堆区开辟内存空间,有自己独特的地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值