棣栧厛鐪嬩竴孌典唬鐮侊紙浣跨敤JDK 5錛夛紝濡備笅錛?br>
1 public class Test {
2 public static void main(String[] args) {
3 Integer i1 = 127;
4 Integer i2 = 127;
5 if (i1 == i2)
6 System.out.println("Equal!");
7 else
8 System.out.println("Not equal!");
9 }
10 }
杈撳嚭緇撴灉鎯沖繀澶у涔熺煡閬擄紝鏄?#8220;Equal!”銆傜幇鍦ㄦ妸i1鍜宨2鐨勫肩敱127鏀逛負128鐪嬬湅浼氬彂鐢熶粈涔堬紵緇撴灉杈撳嚭“Not equal!”銆?br>
娉ㄦ剰i1鍜宨2閮芥槸Integer綾誨瀷錛屼簨瀹炰笂鍙榪欎釜鍊肩殑鑼冨洿鍦?#8220;-128鈥?27”涔嬮棿錛岃緭鍑虹粨鏋滈兘鏄?#8220;Equal!”銆侸DK
5寮曡繘浜嗗緢澶氭柊鐨勭壒鎬э紝鍏朵腑鏈変竴涓氨鏄嚜鍔ㄨ綆憋紙Autoboxing錛夊拰鑷姩鎷嗙錛圓uto-Unboxing錛夈傚綋i1鍜宨2鍊間負128鏃訛紝鍦ㄨ繘琛?
“==”鏃訛紝瀹冧滑琚榪涗袱涓笉鍚岀殑Integer
Objects錛岀敱浜庤繖鏄袱涓笉鍚岀殑instances錛屽畠浠紩鐢ㄤ笉鍚岀殑鍐呭瓨鍦板潃錛屾墍浠ョ粨鏋滄槸“Not equal!”銆?
浣嗗綋榪欎釜鍊兼槸127鏃訛紝JVM鑷姩灝嗚繖涓艱漿鎹㈡垚鍩烘湰綾誨瀷int錛岃繖鏍瘋繘琛?#8220;==”鏃訛紝JVM浠嶇劧浣跨敤鐨勬槸鐩稿悓鐨刼bject instance錛?
鎵浠ヨ緭鍑虹粨鏋滀負“Equal!”浜嗐?br>
鍏跺疄榪欎笌'=='榪愮畻絎︾殑姣旇緝鏈夊叧錛?=='鍙敤鏉ユ瘮杈冧袱涓熀鏈瀷鎬佺殑鍙橀噺鍊兼槸鍚︾浉絳夛紝浜嬪疄涓?=='涔熺敤浜庡垽鏂袱涓璞″彉閲忓悕縐版槸鍚﹀弬鑰冭嚦鍚屼竴涓璞°?br>
鎵
浠?=='鍙互姣旇緝涓や釜鍩烘湰鍨嬫佺殑鍙橀噺鍊兼槸鍚︾浉絳夛紝涔熷彲浠ュ垽鏂袱涓璞″彉閲忕殑鍙傝冨璞℃槸鍚︾浉鍚岋紝褰撴偍濡傚墠涓や釜紼嬪簭鐨勬柟寮忔挵鍐欐椂錛岀紪璇戝櫒涓嶇煡閬撴偍瀹為檯涓婅姣?
杈冪殑鏄摢涓縐嶏紵鎵浠ュ浜庡間粠-128鍒?27涔嬮棿鐨勫鹼紝瀹冧滑琚綆變負Integer瀵硅薄鍚庯紝浼氬瓨鍦ㄥ唴瀛樹箣涓閲嶇敤錛屾墍浠ュ綋鍊煎湪100錛屼嬌鐢?=='榪涜姣?
杈冩椂錛宨1 涓?i2瀹為檯涓婂弬鑰冭嚦鍚屼竴涓璞°?br>
濡傛灉瓚呰繃浜嗕粠-128鍒?27涔嬮棿鐨勫鹼紝琚綆卞悗鐨処nteger瀵硅薄騫朵笉浼氳閲嶇敤錛屽嵆鐩稿綋浜庢瘡嬈¢兘鏂板緩涓涓狪nteger瀵硅薄錛屾墍浠ュ綋鍊煎湪 200錛屼嬌鐢?=='榪涜姣旇緝鏃訛紝i1涓巌2鍙傝冪殑鏄笉鍚岀殑瀵硅薄銆?br>
“Integer
i1 =
127;”鍦↗DK1.5涓嬪彲浠ョ紪璇戦氳繃鐨勶紝榪欏氨鏄嚜鍔ㄨ綆憋紙Autoboxing錛夊拰鑷姩鎷嗙錛圓uto-Unboxing錛夈傝嚜鍔ㄨ綆?
錛圓utoboxing錛夌壒鎬цJava鑷姩鍖呰涓涓畝鍗曟暟鎹被鍨嬶紙渚嬪int錛夊埌瀵瑰簲鐨勫寘瑁呯被鍨嬩腑錛堜緥濡侷nteger錛変腑銆?br> 鍦ㄣ奐SR
201: Extending the Java Programming Language with Enumerations,
Autoboxing, Enhanced for loops and Static Import銆嬩腑錛屽榪欎釜闂錛屾槸浣滀簡榪欐牱鐨勮瀹氾細
If the value p being boxed is true, false, a byte, an ASCII character,
or an integer or short number between -127 and 128, then let r1 and r2
be the results of any two boxing conversions of p. It is always the
case that r1 == r2.
鍦↗ava涓紝The following is the list of primitives stored as immutable objects錛堜笉鍙彉瀵硅薄錛?
* boolean values true and false
* All byte values
* short values between -128 and 127
* int values between -128 and 127
* char in the range \u0000 to \u007F
]]>