Java 8種基本類型包裝類和String的常量池

Byte,Short,Integer,Long

通過如下代碼輸出可以看出常量池?cái)?shù)值范圍為-128~127。

Integer i1 = -129;
Integer i2 = -129;
System.out.println("i1=i2\t" + (i1 == i2));

i1 = -128;
i2 = -128;
System.out.println("i1=i2\t" + (i1 == i2));

i1 = 127;
i2 = 127;
System.out.println("i1=i2\t" + (i1 == i2));

i1 = 128;
i2 = 128;
System.out.println("i1=i2\t" + (i1 == i2));

輸出結(jié)果:
i1=i2 false
i1=i2 true
i1=i2 true
i1=i2 false

Character

通過如下代碼輸出可以看出常量池?cái)?shù)值范圍為0~127。

Character i1 = (char)-1;
Character i2 = (char)-1;
System.out.println("i1=i2\t" + (i1 == i2));

i1 = (char)0;
i2 = (char)0;
System.out.println("i1=i2\t" + (i1 == i2));

i1 = (char)127;
i2 = (char)127;
System.out.println("i1=i2\t" + (i1 == i2));

i1 = (char)128;
i2 = (char)128;
System.out.println("i1=i2\t" + (i1 == i2));

輸出結(jié)果:
i1=i2 false
i1=i2 true
i1=i2 true
i1=i2 false

Boolean

通過如下代碼輸出可以看出它也具有常量池。

Boolean i1 = true;
Boolean i2 = true;
System.out.println("i1=i2\t" + (i1 == i2));

輸出結(jié)果:
i1=i2 true

Float,Double

Float和Double無常量池。

Float i1 = 127F;
Float i2 = 127F;
System.out.println("i1=i2\t" + (i1 == i2));

Double i3 = 127D;
Double i4 = 127D;
System.out.println("i3=i4\t" + (i3 == i4));

輸出結(jié)果:
i1=i2 false
i3=i4 false

String

引用文章:
https://tech.meituan.com/in_depth_understanding_string_intern.html
簡單總結(jié):可以通過使用雙引號聲明出來的String對象的方式和String.intern的方式在字符串常量池中生成對象。若字符串常量池中對象已存在,則無需重復(fù)生成對象。同時(shí)注意1.6和1.7的重要區(qū)別。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 相關(guān)概念 常量池的定義常量池(constant pool):指的是在編譯期被確定,并被保存在已編譯的.class文...
    snoweek閱讀 852評論 0 4
  • ??需要說明的一點(diǎn)是,這篇文章是以《深入理解Java虛擬機(jī)》第二版這本書為基礎(chǔ)的,這里假設(shè)大家已經(jīng)了解了JVM的運(yùn)...
    Geeks_Liu閱讀 14,281評論 5 44
  • 學(xué)習(xí)和使用java已經(jīng)有4年多了,反省一下,太多關(guān)注了實(shí)際的應(yīng)用層面,對某些基礎(chǔ)的東西沒有特別理解透徹。好記性不如...
    錦書詩詞閱讀 1,727評論 4 26
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,648評論 0 3
  • 一.相關(guān)概念 什么是常量用final修飾的成員變量表示常量,值一旦給定就無法改變!final修飾的變量有三種:靜態(tài)...
    夢工廠閱讀 58,618評論 38 275

友情鏈接更多精彩內(nèi)容