Odysseus_110 发表于 2013-1-27 05:25:47

Integer中用静态内部类所作的缓存

今天在做一个题目时,发现一个奇怪的Integer方法。
public class TestingString{public static void main(String[] args){      TestingString inst_test = new TestingString();      int i1 = 128;      int i2 = 128;      int i3 = 2;      int i4 = 2;      Integer Ithree = new Integer(2); // 1      Integer Ifour = new Integer(2); // 2      System.out.println( Ithree == Ifour );      inst_test.method( i3 , i4 );      inst_test.method( i1 , i2 );   }   public void method( Integer i , Integer eye ) {      System.out.println(i == eye );   }}result: false         true         falsei3 == i4 和 i1 == i2的结果竟然不同,接着又继续测试了一下,只要i的值大于127,输出结果就是false。又翻了一下K&B's  book, 其中有一段话:
<div class="quote_title"> 写道
页: [1]
查看完整版本: Integer中用静态内部类所作的缓存