Integer和int 常量池问题

 

 Java的8种基本类型

Byte, Short, Integer, Long, Character, Boolean, Float, Double, 除Float和Double以外, 其它六种都有常量池,,只在大于等于-128并且小于等于127时使用常量池
1.
int i=128;
integer i2=128,相等 自动拆装箱
int和integer 自动拆装箱不管值超不超范围,都相等

2.
自动拆装箱
int 和new integer()  只要值相等就相等
int 和integer 只要值相等就相等

int i=0; Integer j = new Integer(0); System.out.println(i==j); System.out.println(j.equals(i));
   true;true;

3.  有范围
integer =10;
integer=10; 相等 常量池
两个integer超过范围不等
4.
integer(在常量池或者堆)和new integer(堆)永远不等,就算都在堆也不等

两个new integer 永远为false  integer和new Integer 永远为false

String s1="hello";
String s2="hel"+"lo" //优化了 在常量池
==事项等的
String s3=new String("hello");
s1==s3.intern();  true  去常量池去查找,有 常量池有返回常量池的,没有在常量池中创建
 s5=hel;
s6=llo
s7=s5+s6;  不优化,拿的引用

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值