Posted on 2011-01-02 01:32
leekiang 阅读(231)
评论(0) 编辑 收藏 所属分类:
java
JDK1.6
Integer v1 = 100;
Integer v2 = 100;
System.out.println(v1 == v2); // 输出:true
Integer w1 = 200;
Integer w2 = 200;
System.out.println(w1 == w2); // 输出:false
Integer s1 = new Integer(100);
Integer s2 = new Integer(100);
System.out.println(s1 == s2); // 输出:false
String str1="test";
String str2="test";
System.out.println(str1==str2);// 输出:true
String nstr1=new String("aa");
String nstr2=new String("aa");
System.out.println(nstr1==nstr2); // 输出:false
原因:
当给Integer变量直接赋整数值时,如果这个数值位于[-128,127]内,JVM(Java Virtual Machine)就直接使用cache中缓存的Integer对象,否则,JVM会重新创建一个Integer对象。
参考:
http://www.cnblogs.com/bitfan/archive/2010/10/24/1859687.html