Java学习笔记-包装类
基本數據類型對象包裝類的最常見作用,就是用于基本數據類型和字符串類型之間做轉換
包裝類的由來
為了解決8種基本數據類型的變量不能當成Object類型變量使用的問題,Java提供了包裝類(Wrapper Class)的概念,為8種基本數據類型分別定義了相應的引用類型,并稱之為基本數據類型的包裝類
包裝類的使用
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| char | Character |
| float | Float |
| double | Double |
| boolean | Boolean |
-
除了int和char,其他的只需將首字母大寫即可
-
在JDK1.5以前
①把基本數據類型變量變成包裝類實例需要通過對應包裝類的構造器實現
②如果希望得到包裝類對象中包裝的基本數據類型變量,則可以使用xxxValue()實例方法 -
而JDK1.5以后提供了自動裝箱(Autoboxing)和自動拆箱(AutoUnboxing)功能
- 自動裝箱:可以把一個基本數據類型變量直接賦值給對應的包裝類變量,或者賦給Object變量。
- 自動拆箱:允許直接把包裝類對象直接賦值給一個對應的基本類型變量。
e.g.
基本數據類型變量和字符串之間的轉換
把字符串類型轉換成基本數據類型的值有兩種方式。
- 利用包裝類提供的parseXxx (String s)靜態方法(除Character)
- 利用包裝類提供的Xxx (String s)構造器
String提供多個重載valueOf()方法,用于將基本數據類型轉化為字符串
- 注意:雖然包裝類的變量是引用數據類型,但是包裝類的實例可以與數值型的值直接進行比較,這種比較是直接取出包裝類實例所包裝的數值來進行比較的,但若兩個包裝類進行比較,那么只有這兩個包裝類必須指向同一個對象時才會返回true
Java8增強的包裝類
-
Java8為Integer、Long增加了如下方法:
- startic String toUnsignedString (int/long i):該方法將指定int或long整數轉化為無符號整數對應的字符串
- startic String toUnsignedString (int/long i , int radix):該方法將指定int或long整數轉化為指定進制的無符號整數對應的字符串
- static xxx parseUnsignedXxx (String s):該方法將指定字符串解析成無符號整數
- static xxx parseUnsignedXxx (String s, int radix):該方法將指定字符串按指定進制解析成無符號整數
- static int compareUnsigned (xxx x, xxx y):該方法將x、y兩個整數轉化為無符號整數后比較大小
- static long divideUnsigned (long dividend, long divisor):該方法將x、y兩個整數轉化為無符號整數后計算他們相除的商
- static long remainderUnsigned (long dividend, long divisor):該方法將x、y兩個整數轉化為無符號整數后計算他們相除的余數
-
Java8還為Byte、Short增加了toUnsignedInt (xxx x)、toUnsignedLong (yyy x)兩個方法,這兩個方法將指定byte或short類型變量或值轉化成無符號的int或long值
包裝類總結
-
基本數據類型轉成字符串
基本數據類型 + “”
基本數據類型.toString(基本數據類型值);
如: Integer.toString(34); //將34整數變成"34"; -
字符串轉成基本數據類型
十進制轉成其他進制
toBinaryString(); toHexString(); toOctalString();其他進制轉成十進制。
parseInt(string,radix);一個現象
Integer m = 128; Integer n = 128; //此時m != nInteger a = 127; Integer b = 127; //此時m == n//因為a和b指向了同一個Integer對象 //因為當數值在byte范圍內容,對于新特性,如果該數值已經存在,則不會在開辟新的空間轉載于:https://www.cnblogs.com/cj5785/p/10664850.html
總結
以上是生活随笔為你收集整理的Java学习笔记-包装类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: easyui 传递参数报错(错误:unc
- 下一篇: Java程序设计第三次作业