代码改变世界

Integer比较、String比较心得

2019-09-26 19:00  Spiderman25  阅读(670)  评论(0)    收藏  举报

1、Integer.valueOf或装包都走valueOf,凡是-128到127的都从缓存中拿Integer,所以比较肯定相等
2、包装跟非包比较时,包装转成非包,所以如果值一样就相等,
3、包装间比较如果不是从缓存中拿就算值一样也不相等
4、非包装比较如果值一样肯定相等

1、String s=="ff"从缓存中拿,
2、String k =new String("ff");k的地址是new String("ff"),而new String("ff")从缓存中拿"ff",所以k!=s,k.intern()就是指向"ff",所以s==k.intern()
3、包装比较肯定不相等
4、非包比较如果值一样肯定相等,因为都是从缓存中拿