Java 八大基本資料型別以及包裝類的詳解
阿新 • • 發佈:2019-02-05
一、java中八種基本資料型別對應的包裝型別:
原始型別 包裝類 原始型別所佔的位元組數
short Short 2個位元組
int Integer 4個位元組
long Long 8個位元組
float Float 4個位元組
double Double 8個位元組
byte Byte 1個位元組
char Character 2個位元組
boolean Boolean 這個試編譯環境而定
這樣使用者就很方便的完成了 String和int的轉換 這樣就方便了使用者
原始型別 包裝類 原始型別所佔的位元組數
short Short 2個位元組
int Integer 4個位元組
long Long 8個位元組
float Float 4個位元組
double Double 8個位元組
byte Byte 1個位元組
char Character 2個位元組
boolean Boolean 這個試編譯環境而定
思考:java中提供的八種基本資料型別不夠用嗎?為什麼java中還要提供對應的包裝類呢?
1.基本資料型別之間的相互轉換不是都可以制動轉換的,而你強制轉換又會出問題,比如String型別的轉換為int型別的,那麼jdk為了方便使用者就提供了相應的包裝類。
2.便於函式傳值
3.就是在一些地方要用到Object的時候方便將基本資料型別裝換
例子:
上面是jdk關於Integer的一個例子 比如Integer intg = Integer.valueOf(str); int i = intg.parseToInt();public class Integer{ private int i; public Integer(int a){ i =a; } public static int parseToInt(){ return i; } public static Integer valueOf(String str){ //封裝一系列的邏輯最終將str轉換成int型別的IntegerStr return new Integer(IntegerStr); } }
這樣使用者就很方便的完成了 String和int的轉換 這樣就方便了使用者
有時候一個函式需要傳遞一個Object的變數
而你想傳遞int型別的進去顯然不行,怎麼辦呢,用到了包裝類。
public void test(Object obj){
}
你想傳遞5進去就可以這樣
test(new Integer(5));
二,包裝類的使用
以Integer為例子~
效果圖:public class IntegerTest{ public static void main(String[] args){ //獲取int型別的最大值和最小值 System.out.println("int最小值:" + Integer.MIN_VALUE); System.out.println("int最大值:" + Integer.MAX_VALUE); //以int推byte System.out.println("byte最小值:" + Byte.MIN_VALUE); System.out.println("byte最大值:" + Byte.MAX_VALUE); //建立Integer型別的物件 Integer i1 = new Integer(10); //int--> Integer Integer i2 = new Integer("123"); //String --> Integer System.out.println(i1); //10 System.out.println(i2); //123 //以下程式編譯可以通過。但是執行的時候會報異常.數字格式化異常. //雖然可以將字串轉換成Integer型別,但是該字串也必須是"數字字串". //Integer i3 = new Integer("abcd"); //NumberFormatException } }
Integer中常用的方法:
public class IntegerTest1{
public static void main(String[] args){
//int-->Integer
//基本資料型別-->引用型別
Integer i1 = new Integer(10);
//Integer-->int
//引用型別-->基本型別
int i2 = i1.intValue();
System.out.println(i2 + 1); //11
//重要:static int parseInt(String s);
//String-->int
int age = Integer.parseInt("25");
System.out.println(age+1); //26
//"abc"這個字串必須是“數字字串”才行.
//int price = Integer.parseInt("abc"); //NumberFormatException
//重要:static double parseDouble(String s);
double price = Double.parseDouble("3.0");
System.out.println(price+1.0); //4.0
//將int型別的十進位制轉換成2進位制
String s1 = Integer.toBinaryString(10);
System.out.println(s1); //1010
//將int型別的十進位制轉換成16進位制
String s2 = Integer.toHexString(10);
System.out.println(s2); //a
//將int型別的十進位制轉換成8進位制
String s3 = Integer.toOctalString(10);
System.out.println(s3); //12
//int-->Integer
Integer i3 = Integer.valueOf(10);
//String--->Integer
Integer i4 = Integer.valueOf("10");
System.out.println(i3);
System.out.println(i4);
}
}
效果圖如下:
包裝類的作用還是很強大的~