标签:== system -128 span hashcode ash val lse identity
Integer n1 = 123; Integer n2 = 123; Integer n3 = 128; Integer n4 = 128; System.out.println(n1 == n2);// true System.out.println(n3 == n4);// false System.out.println(n3.intValue()==n4.intValue());// true System.out.println(128==n3);// true System.out.println(128==n4);// true // 对象的hashcode值 System.out.println(System.identityHashCode(n1));// 366712642 System.out.println(System.identityHashCode(n2));// 366712642 System.out.println(System.identityHashCode(n3));// 1829164700 System.out.println(System.identityHashCode(n4));// 2018699554
为什么 n3==n4 是false呢,因为在 Integer.IntegerCache 中 -128- 127 已经被缓存了,n1 n2 的hashcode一样的,而n3 、n4 的hashcode 是不一样的
标签:== system -128 span hashcode ash val lse identity
原文地址:https://www.cnblogs.com/yrjns/p/12531398.html