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; 不优化,拿的引用