閱讀目錄
在使用數字時,我們通常會使用內置數據類型,如
int a = 9; float b = 3.14
然而在實際開發中,我們經常遇到需要使用對象而不是使用內置數據類型的對象。為了解決這一問題,Java為每一個內置數據類型提供了對應的包裝類(比如使用該類型所擁有的函數),如下圖:
這種由編譯器特別支持的包成為裝箱,
例子
public class ForTest { public static void main(String args[]){ //char grade = args[0].charAt(0); Integer x = 5; x += 20; System.out.println(x); } }
Integer x = 5,編譯器對x進行裝箱,x+=20編譯器對x進行了拆箱。
Number方法使用舉例
public class ForTest { public static void main(String args[]){ //char grade = args[0].charAt(0); Integer x = 5; System.out.println(x); System.out.println("5 compareTo 1:" + x.compareTo(1)); System.out.println("5 compareTo 50:" + x.compareTo(50)); Integer intx = Integer.valueOf("3"); System.out.println("valueOf" + intx); //該對象中保存了用第二個參數提供的基數進行解析時從指定的 String 中提取的值 Integer inty = Integer.valueOf("13", 16); System.out.println("valueOf" + inty); System.out.println("Math.max(3,5):" + Math.max(3, 5)); System.out.println("Math.min(3,5):" + Math.min(3, 5)); System.out.println("exp(2):" + Math.exp(2)); System.out.println("log(2):" + Math.log(2)); System.out.println("pow(2,3):" + Math.pow(2, 3)); System.out.println("sqrt(2,3):" + Math.sqrt(4)); System.out.println("toRadians(30):" + Math.toRadians(30)); System.out.println("sin(1):" + Math.sin(Math.toRadians(30))); System.out.println("random:" + Math.random()); } }
運行結果
5 5 compareTo 11 5 compareTo 50-1 valueOf3 valueOf19 Math.max(3,5):5 Math.min(3,5):3 exp(2):7.38905609893065 log(2):0.6931471805599453 pow(2,3):8.0 sqrt(2,3):2.0 toRadians(30):0.5235987755982988 sin(1):0.49999999999999994 random:0.10509218688109245
Character類用於對單個字符進程操作,例如
char ch = 'a'; // Unicode 字符表示形式 char uniChar = '\u039A'; char[] charArray = {'a', 'b', 'c'};
然而,在實際開發中,經常遇到使用char類型的對象,而不是內置數據類型。編譯器把char類型自動轉化為Character對象成為“裝箱”,反過來成為“拆箱”。Character用法舉例
public class CharTest { public static void main(String args[]) { char ch = 'a'; // Unicode 字符表示形式 char uniChar = '\u039A'; char[] charArray = {'a', 'b', 'c'}; Character ch2 = 'a'; System.out.println("a是否是一個字母:" + Character.isLetter(ch2)); System.out.println("a是否是一個數字字符:" + Character.isDigit(ch2)); System.out.println("是否是一個空格:" + Character.isWhitespace(ch2)); System.out.println("\\t是否是一個空格:" + Character.isWhitespace('\t')); System.out.println("a是否是一個大寫字母:" + Character.isUpperCase(ch2)); System.out.println("a是否是一個小寫字母:" + Character.isLowerCase(ch2)); System.out.println("a轉化為大寫字母:" + Character.toUpperCase(ch2)); System.out.println("a轉化為小寫字母:" + Character.toLowerCase(ch2)); System.out.println("a字符轉化為字符串:" + Character.toString(ch2)); } }
運行結果
a是否是一個字母:true a是否是一個數字字符:false 是否是一個空格:false \t是否是一個空格:true a是否是一個大寫字母:false a是否是一個小寫字母:true a轉化為大寫字母:A a轉化為小寫字母:a a字符轉化為字符串:a