国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

淺談java常量池

2019-11-26 14:12:43
字體:
來源:轉載
供稿:網友

java常量池技術

java中常量池技術說的通俗點就是java級別的緩存技術,方便快捷的創建一個對象。當需要一個對象時,從池中去獲取(如果池中沒有,就創建一個并放入池中),當下次需要相同變量的時候,不用重新創建,從而節省空間。

java八種基本類型的包裝類和對象池

java中的基本類型的包裝類、其中Byte、Boolean、Short、Character、Integer、Long實現了常量池技術,(除了Boolean,都只對小于128的值才支持)

比如,Integer對象

Integer i1 = 100;Integer i2 = 100;// 上面兩行代碼,使用自動裝箱特性,編譯成// Integer i1 = Integer.valueOf(100);// Integer i2 = Integer.valueOf(100);System.out.println(i1 == i2);Integer i3 = 128;Integer i4 = 128;System.out.println(i3 == i4);

執行結果:

truefalse

原因我看下Integer對象的valueOf()的源碼

public static Integer valueOf(int i) {   assert IntegerCache.high >= 127;   if (i >= IntegerCache.low && i <= IntegerCache.high)     return IntegerCache.cache[i + (-IntegerCache.low)];   // 對于不在這個范圍的就重新創建一個Integer對象      return new Integer(i);}

對于-128~127的Integer對象才會到IntegerCache里獲取緩存,使用常量池技術。

private static class IntegerCache {  ...  static final Integer cache[];// IntegerCache類的cache是用final修飾的,是個靜態數組,起到緩存的作用}

String類的常量池

String類型的常量池比較特殊,String類常量池在jdk7中放在了java heap中。使用方法包括:

•直接使用字面量聲明,如String s = "abc";

•使用String.intern();

以上這篇淺談java常量池就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石嘴山市| 登封市| 尼勒克县| 皋兰县| 重庆市| 丰都县| 容城县| 信丰县| 墨脱县| 彭泽县| 蒙阴县| 牡丹江市| 紫阳县| 民丰县| 双江| 丰顺县| 黑河市| 元阳县| 绥中县| 修水县| 房山区| 合山市| 四子王旗| 铜山县| 张家界市| 陆丰市| 大同县| 丹寨县| 和田县| 隆安县| 北流市| 威远县| 盐源县| 泰州市| 朝阳县| 霍邱县| 汉阴县| 太湖县| 筠连县| 潞西市| 都匀市|