1. 程式人生 > >Java SE核心之一:常用類,包裝類,其他基本數據類型包裝類。

Java SE核心之一:常用類,包裝類,其他基本數據類型包裝類。

自動 default supported pan 通過 jdk trace clas pareto

在Java繼承體系中,java.lang.Object類位於頂端(是所有對象的直接或間接父類)。如果一個類沒有寫extends關鍵字聲明其父類,則該類默認繼承java.lang.Object類。Object類定義了“對象”的基本行為,被子類默認繼承。

1.Number 類

Number數值類型是byte、double、float、int、long 和 short類的抽象父類,提供把包裝類轉化成基本數據類型的方法(xxxValue)。

詳細請查閱JDK API 及以上文檔:

技術分享圖片

1.2 Interger 是int基本數據類型的包裝類,在Interger內部封裝了一個final int value 的屬性。

技術分享圖片

1) 構造方法

 1 public class Test1 {
 2     public static void main(String[] args) {
 3         // Integer 屬性 
 4         //System.out.println(Integer.MAX_VALUE); 輸出2^31 - 1;
 5         //System.out.println(Integer.MIN_VALUE); 輸出-2^31;
 6 
 7         // 構造方法
 8         int t = 10;
 9         String bStr = "20";
10 Integer t1 = new Integer(t); 11 //可能拋出NumberFormatException異常 12 Integer t2 = new Integer(bStr); 13 System.out.println(t1.toString()); 14 System.out.println(t2.toString()); 15 16 } 17 }

2)int<->Integer<->string類型之間轉換

 1 public
class Test2 { 2 public static void main(String[] args) { 3 // int -> Integer 4 Integer i1 = new Integer(10); 5 Integer i2 = Integer.valueOf(20); 6 7 // Integer -> int 8 int a = i1.intValue(); 9 10 // String -> Integer 11 Integer i3 = new Integer("30"); 12 Integer i4 = Integer.valueOf("40"); 13 14 // Integer -> String 15 System.out.println(i3.toString()); 16 17 // String -> int 18 int b = Integer.parseInt("50"); 19 System.out.println(b); 20 21 //int -> String 22 String str = Integer.toString(10); 23 24 String str2 = Integer.toString(8,2);//將8轉化為二進制數 25 System.out.println(str2); //輸出二進制 1000; 26 } 27 28 }

3)Comparable接口

查看JDK API文檔我們發現對Comparable定義如下:

技術分享圖片

Comparable 表示具有比較能力,對象可比較大小,還可以強行對實現它的每個類的對象進行整體排序。這種排序被稱為類的自然排序,類的 compareTo 方法被稱為它的自然比較方法。實現此接口的對象列表(和數組)可以通過 Collections.sort(和 Arrays.sort)進行自動排序。實現此接口的對象可以用作有序映射中的鍵或有序集合中的元素,無需指定比較器。

 1 public class Test3 {
 2     
 3     public static void main(String[] args) {
 4         Integer i1 = new Integer(10);//把包裝類轉化基本數據類型
 5         int a=i1.intValue();
 6         System.out.println(a);
 7         
 8         //(2)Integer的比較
 9         Integer i2 = new Integer(20);
10         Integer i3 = new Integer(30);
11         //equals是對象內容進行比較。
12         System.out.println(i2.equals(i3));//輸出false ,i2和i3的內容不想相等。
13         
14         /*compareTo(), 在JDK API中,java.lang包下面的基本數據類型的封裝類都提供了該方法,如 Integer,Float,Byte,Short,Character 等。
15         比較此對象與指定對象的順序。如果該對象小於、等於或大於指定對象,則分別返回負整數、零或正整數。*/
16         System.out.println(i2.compareTo(i3));//輸出-1,說明該對象i2 小於 指定對象i3;
17         
18     }
19 
20 }

2. String類

1)String是字符串類型,是引用類型,是“不可變”字符串(內部聲明一個private final char value[];),無線程安全問題。在java.lang.String中。

 1 public class Test1 {
 2     public static void main(String[] args) {
 3         String str1 = "abc";
 4         String str2 = "abc";
 5         String Str3 = "abcd";
 6         
 7         //比較str1與str2的內存地址是否相等?
 8         System.out.println(str1 == str2);//輸出true;相等!
 9         
10     }
11 
12 }

因為String對象是不可變的,所以可以共享。 通過字面量創建的字符串分配在常量區。

技術分享圖片

3. 字符串常用方法

1)構造方法

 1 import java.io.UnsupportedEncodingException;
 2 import java.nio.charset.Charset;
 3 
 4 public class Test2 {
 5     public static void main(String[] args) {
 6         //在堆區初始化一個空字符串
 7         String str1 = new String();
 8         
 9         //通過一個字節數組構建一個字符串
10         byte[] bytes = {97,98,99};
11         //通過使用平臺的默認字符集解碼指定的byte 數組
12         //System.out.println(Charset.defaultCharset()); //輸出GBK ,不同平臺的默認字符集解碼不同的。GBK是在Windows簡體中文平臺下的字符解碼;
13         String str2 = new String(bytes);
14         System.out.println(str2);
15         
16         byte[] byte2 = {-42,-48};
17         String str3 = null;
18         try {
19             //使用指定的字符集對字節序列進行解碼
20             str3 = new String(byte2,"GBK");
21         } catch (UnsupportedEncodingException e) {
22             e.printStackTrace();
23         }
24         System.out.println(str3);
25         
26         //對一個UTF-8的字節序列進行解碼
27         byte[] byte3 = {-28,-72,-83,-28,-72,-83};
28         
29         try {
30             String str4 = new String(byte3,"UTF-8");//輸出中中
31             String str5 = new String(byte3,0,3,"UTF-8");//輸出中,是0-3位的數;
32             System.out.println("str4:"+ str4);
33             System.out.println("str4:"+ str5);
34         } catch (UnsupportedEncodingException e) {
35             e.printStackTrace();
36         }
37         
38     }
39 
40 }

Java SE核心之一:常用類,包裝類,其他基本數據類型包裝類。