Java 基本資料型類別(primitive type)和外包類別(wrapper classes)

文章推薦指數: 80 %
投票人數:10人

基本資料型類別(primitive type),又稱為工具類別,例如char, int等,和外包類別(wrapper classes) Character, Integer是有分別的。

錯誤示範: skiptomain| skiptosidebar 首頁 2012年3月29日星期四 Java基本資料型類別(primitivetype)和外包類別(wrapperclasses) 清晨5:37  zan  Nocomments 在這篇網誌,主要是記下Java裡基本資料型類別(primitivetype),和外包類別(wrapperclasses)的分別。

基本資料型類別(primitivetype),又稱為工具類別,例如char,int等,和外包類別(wrapperclasses)Character,Integer是有分別的。

錯誤示範: (例如通過char去調用Character裡的staticmethod) chara='a'; charcapA=a.toUpperCase(a); 當做字串與數值的轉換的話,常常會將基本資料型類別(primitivetype)包裝成外包類別(wrapperclasses) 例如: Stringstr="50"; Integeri=new Integer(str); i=i-10; System.out.println(i);   //結果會是40 使用外包類別代替基本資料型類別的缺點是在運算上會比較基本資料型類別慢一點。

另外,在進行比較時也要小心: Charactera=newCharacter('a'); CharacterbigA=newCharacter('A'); Charactera2=newCharacter('a'); System.out.println("resulta>A:"+(a>bigA));  //結果是true System.out.println("resulta==a2:"+(a==a2));  //結果是false System.out.println("resulta==a2:"+(a.equals(a2))); //結果是true 問題就出在 a> bigA的比較時,這兩個物件會先做unboxing成基本資料型類別primitivetype再比較。

但是在做a==a2的比較時,這兩個變數會被當成物件來處理,而不做unboxing,結果就是false,因為本身就是不同的reference,如要進行時應使用equals()。

以下表列了Java的PrimitiveType和對應的外包類別: PrimitiveType Size MinimumValue MaximumValue WrapperType char 16-bit Unicode0 Unicode216-1 Character byte 8-bit -128 +127 Byte short 16-bit -215 (-32,768) +215-1 (32,767) Short int 32-bit -231 (-2,147,483,648) +231-1 (2,147,483,647) Integer long 64-bit -263 (-9,223,372,036,854,775,808) +263-1 (9,223,372,036,854,775,807) Long float 32-bit 32-bitIEEE754floating-pointnumbers Float double 64-bit 64-bitIEEE754floating-pointnumbers Double boolean 1-bit true 或false Boolean Postedin:[業精於勤][編程]Java筆記 以電子郵件傳送這篇文章 BlogThis! 分享至Twitter 分享至Facebook 較新的文章 較舊的文章 首頁 0 意見: 張貼留言 Popular Tags BlogArchives 文章分類 GoogleTranslate PopularPosts Java基本資料型類別(primitivetype)和外包類別(wrapperclasses) 免費好用的研究論文的管理軟件–Qiqqa 不用Android手機也能免費獲得23GBDropbox空間 Dropbox將收回非正式得到的23GB免費空間 Google瀏覽器Chrome18正式推出-支援硬體加速 PhotoshopCS6Beta公開下載 Dropbox把介紹朋友所得的免費空間提升至500MB Google街景旅遊導覽-日本櫻花季 顏色配對遊戲ColorMatchingGame Android5.0JellyBean作業系統可能在今年第三季推出? Followers 技術提供:Blogger. BlogArchive ▼  2012 (17) ►  四月 (5) ▼  三月 (11) GoogeDrive將於四月推出,免費空間由5GB起跳? Google瀏覽器Chrome18正式推出-支援硬體加速 Java基本資料型類別(primitivetype)和外包類別(wrapperclasses) 不用Android手機也能免費獲得23GBDropbox空間 Google街景旅遊導覽-日本櫻花季 Android5.0JellyBean作業系統可能在今年第三季推出? 香港國際七人欖球賽–HongKongSevens星期日賽程表&盃賽出線表 PhotoshopCS6Beta公開下載 香港國際七人欖球賽-HongKongSevens 顏色配對遊戲ColorMatchingGame 免費好用的研究論文的管理軟件–Qiqqa ►  一月 (1) Tags [及時行樂][欖球]香港國際七人欖球賽 (2) [及時行樂]遊戲 (1) [新鮮人事物][科技]谷歌 (5) [新鮮人事物][科技]軟件 (1) [新鮮人事物][科技]雲端系統 (5) [新鮮人事物]其他 (1) [業精於勤][研究]工具 (1) [業精於勤][編程]Java筆記 (1) BlogArchive ▼  2012 (17) ►  四月 (5) ▼  三月 (11) GoogeDrive將於四月推出,免費空間由5GB起跳? Google瀏覽器Chrome18正式推出-支援硬體加速 Java基本資料型類別(primitivetype)和外包類別(wrapperclasses) 不用Android手機也能免費獲得23GBDropbox空間 Google街景旅遊導覽-日本櫻花季 Android5.0JellyBean作業系統可能在今年第三季推出? 香港國際七人欖球賽–HongKongSevens星期日賽程表&盃賽出線表 PhotoshopCS6Beta公開下載 香港國際七人欖球賽-HongKongSevens 顏色配對遊戲ColorMatchingGame 免費好用的研究論文的管理軟件–Qiqqa ►  一月 (1)   Copyright©2012BlueSky



請為這篇文章評分?