对象池问题

对象池问题

为什么不在-127—127这个范围,就不在对象池找呢,直接在对象池找不是更方便     运行速率更快吗

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1. Integer对象的范围是-128~127

2. 同学是想问为什么在-128~127之外的不存在缓存区(对象池)吗?如果是,则是在底层进行处理的,如下图所示:如果同学感兴趣的话,可以查看一下相关源码。

http://img1.sycdn.imooc.com//climg/5f1254d009277d3807730551.jpg

注:现阶段同学知道如何使用即可。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小尤 2020-07-17 17:23:13

 同学你好,1. 创建一个Integer对象,如果是-128~127之间的数据,则在缓存区(对象池)直接创建,比如:

    Integer  a=100;就是在缓存区(对象池)创建一个值为100的对象,然后将这个对象的引用指向a,也就是赋值给a

2. 但是如果创建的数字时-128~127之外的数据,创建的数据对象就是在缓存区(对象池)之外创建了这个对象。如:

     Integer  b=200;就是在缓存区(对象池)之外创建一个值为200的对象,然后将这个对象的引用指向b,也就是赋值给b。

3. 所以当创建-128~127之外的数据,无法在缓存区(对象池)中进行查找。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕沐1462760 #1
    为什么-127~127之外的不存在常量池呢,难道是因为放不了那么多?
    2020-07-17 20:29:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师