Posted on 2011-01-02 01:32
leekiang 閱讀(234)
評論(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