基本類型包裝類及編譯器優(yōu)化(常量池)

1.Boolean

/**
 * 
 * @author Aruforce
 * Booelean 為不可變類,Java實現(xiàn)了 常量池機制片拍。
 * 直接賦值'public static Boolean flag1 = true;' 會被優(yōu)化成 
 * 'public static Boolean flag1 = Boolean.valueOf(true);'返回一個Boolean的固定地址
 */
public class TestBoolean {
    public static Boolean flag1 = true;//常量池
    public static Boolean flag2 = true;//常量池
    public static void main(String[] args) {
        System.out.println(flag1==flag2);//true
        Boolean flag3 = new Boolean(true);//堆內(nèi)的對象
        System.out.println(flag1 == flag3);//false
        Boolean flag4 =true;//常量池
        System.out.println(flag1 == flag4);//true
        flag4 = new Boolean(false);//堆內(nèi)的對象
        System.out.println(flag3 == flag4);//false
    }
}

2.Byte

/**
 * 
 * @author Aruforce
 * Byte為不可變類鸟蟹,Java為其實現(xiàn)了常量池機制
 * 直接賦值'public static Byte b1 = 1' -128-0-127 會被優(yōu)化成 
 * 'Byte.valueOf(1)' 返回ByteCache.cache[]里面對應(yīng)的值
 */
public class TestByte {
    public static Byte b1 = 1;//常量池
    public static Byte b2 = 1;//常量池
    public static void main(String[] args) {
        Byte b3 = 1;
        Byte b4 = new Byte((byte)1);
        System.out.println(b1 == b2);//true
        System.out.println(b1 ==b3);//true
        System.out.println(b1==b4);//false
    }
}

3.Charactor

/**
 * 
 * @author Aruforce
 * Character 為不可變類溪食,Java為(Character c int值在127以下時)實現(xiàn)了常量池機制 
 * 直接賦值'public static Character character1 = 'A' 被編譯器優(yōu)化為
 * 'public static Character character1 = Character.valueOf('A')'
 * 
 */
public class TestCharactor {
    public static Character character1 = 'A';
    public static Character character2 = 'A';
    public static Character character11 = '中';
    public static void main(String[] args) {
        Character character3 = 'A';
        Character character4 = new Character('A');
        System.out.println(character1 == character2);//true
        System.out.println(character1 == character3);//true
        System.out.println(character1 == character4);//false
        Character character12 = '中';
        Character character13 = new Character('中');
        System.out.println(character11 == character12);//false
        System.out.println(character12 == character13);//false
    }
}

4.Double

/**
 * 
 * @author Aruforce
 * Double 是不可變類,但是Java未實現(xiàn)常量池機制驯杜,顯然數(shù)值類型的也不需要
 * public static Double d1 = 1.0 優(yōu)化為 public static Double d1 = Double.valueOf(1.0D);
 * 實際上也是調(diào)用 new Doubel();
 */
public class TestDouble {
    public static Double d1 = 1.0;
    public static Double d2 = 1.0;
    public static void main(String[] args) {
        Double d3 = 1.0;
        Double d4 = new Double(1.0);
        System.out.println(d1 == d2);//false
        System.out.println(d1 == d3);//false
        System.out.println(d1 == d4);//false
    }
}

5.Float

/**
 * 
 * @author Aruforce
 * Float 是不可變類,但是Java未實現(xiàn)常量池機制,顯然數(shù)值類型的也不需要
 * public static Float f1 = 1.0f; 優(yōu)化為 public static Float f1 = Float .valueOf(1.0f);
 * 實際上也是調(diào)用 new Float();
 */
public class TestFloat {
    public static Float f1 = 1.0f;
    public static Float f2 = 1.0f;
    public static void main(String[] args) {
        Float f3 = 1.0f;
        Float f4 = new Float(1.0f);
        System.out.println(f1 == f2);//false
        System.out.println(f1 == f3);//false
        System.out.println(f1 == f4);//false
    }
}

6.Integer

/**
 * 
 * @author Aruforce
 * {@link Integer} 是不可變類厨钻,Java為介于-128-0-127的實現(xiàn)了常量池
 * public static Integer i1 = 127;被編譯器優(yōu)化為
 * public static Integer i1 = Integer.valueOf(1);
 */
public class TestInteger {
    public static Integer i1 = 127;
    public static Integer i2 = 127;
    public static void main(String[] args) {
        Integer i3 = 127;
        Integer i4 = new Integer(127);
        System.out.println(i1 == i2);// true
        System.out.println(i1 == i3);// true
        System.out.println(i1 == i4);// false
    }
}

7.Long

/**
 * 
 * @author Aruforce
 * {@link Long} 是不可變類琐脏,Java為介于-128-0-127的實現(xiàn)了常量池
 * public static Long i1 = 127;被編譯器優(yōu)化為
 * public static Long i1 = Long.valueOf(1);
 */
public class TestLong {
    public static Long l1 = 127l;
    public static Long l2 = 127l;
    public static void main(String[] args) {
        Long l3 = 127l;
        Long l4 = new Long(127l);
        System.out.println(l1 == l2);// true
        System.out.println(l1 == l3);// true
        System.out.println(l1 == l4);// false
    }

}

8.Short

/**
 * 
 * @author Aruforce
 * {@link Short} 是不可變類,Java為介于-128-0-127的實現(xiàn)了常量池
 * public static Short i1 = 127;被編譯器優(yōu)化為
 * public static Short i1 = Short.valueOf(1);
 */
public class TestShort {
    public static Short s1 = 127;
    public static Short s2 = 127;
    public static void main(String[] args) {
        Short s3 = 127;
        Short s4 = new Short((short)127);
        System.out.println(s1 == s2);// true
        System.out.println(s1 == s3);// true
        System.out.println(s1 == s4);// false
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吴裤,一起剝皮案震驚了整個濱河市旧找,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌麦牺,老刑警劉巖钮蛛,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剖膳,居然都是意外死亡魏颓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門吱晒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甸饱,“玉大人,你說我怎么就攤上這事√净埃” “怎么了偷遗?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驼壶。 經(jīng)常有香客問我氏豌,道長,這世上最難降的妖魔是什么热凹? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任泵喘,我火速辦了婚禮,結(jié)果婚禮上般妙,老公的妹妹穿的比我還像新娘纪铺。我一直安慰自己,他們只是感情好碟渺,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布霹陡。 她就那樣靜靜地躺著,像睡著了一般止状。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上攒霹,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天怯疤,我揣著相機與錄音,去河邊找鬼催束。 笑死集峦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抠刺。 我是一名探鬼主播塔淤,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼速妖!你這毒婦竟也來了高蜂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤罕容,失蹤者是張志新(化名)和其女友劉穎备恤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锦秒,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡露泊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旅择。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惭笑。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沉噩,到底是詐尸還是另有隱情捺宗,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布屁擅,位于F島的核電站偿凭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏派歌。R本人自食惡果不足惜弯囊,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胶果。 院中可真熱鬧匾嘱,春花似錦、人聲如沸早抠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕊连。三九已至悬垃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甘苍,已是汗流浹背尝蠕。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留载庭,地道東北人看彼。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像囚聚,于是被迫代替她去往敵國和親靖榕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容