java中的數據類型
包裝類與基本數據類型
java中提供了8中基本類型:6中數字類型(4個整數型,2個浮點型),1種字符類型,還有1種布爾類型。
- 整數: int 、short、byte、long,初始值爲0.
- 浮點型:float、double,初始值爲0.0 。
- 字符:char 初始值爲空格。
- 布爾值:boolean ,初始值爲false。
java中包裝類包括:Integer、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecimal。其中BigInteger、BigDecimal沒有對應的基本類型,主要用於高精度的運算。BigInteger支持任意精度的整數,BigDecimal支持任意精度帶小數的運算。
基本類型與包裝類的異同
1、在java中,一切皆對象,但8大基本類型卻不是。
2、聲明方式的不同,基本類型無需通過new關鍵字來創建,而包裝類型需要。
3、存儲方式及位置不同,基本類型是直接存儲變量的值保存在棧中能高效存取,包裝類型需要通過引用指向實例,具體實例保存在堆中。
4、初始值不同,包裝類型的初始值爲null,基本類型的初始值視具體的類型而定,比如int類型的初始值爲0,boolean類型爲false。
5、使用方式的不同,比如與集合類合作使用時只能使用包裝類型。
包裝類與基本數據類型
- 裝箱:把基本數據類型轉換成包裝類
自動裝箱
int i1 = 2;
Integer i2 = i1;
手動裝箱
int i1 = 2;
//手動裝箱
Integer i3 = new Integer(i1);
- 拆箱:把包裝類轉換成基本數據類型
自動拆箱
手動拆箱
int i1 = 2;
Integer i2 = i1;
// 自動拆箱
int i4 = i2;
// 手動拆箱
int i5 = i2.intValue();
字符串與基本數據類型
- 基本數據類型轉換爲字符串
使用包裝類的toString()方法
int t1 = 2;
String t2 = Integer.toString(t1);
System.out.println("int類型轉換爲String類型對象t2="+t2);
- 字符串轉換爲基本數據類型
自動拆箱調用包裝類的parseXxx()靜態方法
調用包裝類的valueOf()方法轉換爲基本類型的包裝類,自動拆箱。
//1、包裝類的parse
int t3 = Integer.parseInt(t2);
//2、包裝類的valueOf 先將字符串轉換爲包裝類,
//再通過自動拆箱完成基本類型轉換
int t4 = Integer.valueOf(t2);
常用方法
1、Integer
java.lang包中的Integer類、Long類和Short類,分別將基本類型int、long、short封裝成一個類。由於這些類都是Number的子類,區別就是封裝不同的數據類型,其包含的方法基本相同,下面以Integer類爲例介紹:
Integer類在對象中包裝了一個基本類型int的值。該類的對象包含一個int類型的字段。此外,該類提供了多個方法,能在int類型和string類型之間互相轉換,同時還提供了處理int類型時非常有用的其他一些常量和方法。
1、構造方法有兩種:
① 以int型變量作爲參數創建Integer對象,實例代碼如下:
Integer number = new Integer(7);
② 以String型變量作爲參數創建Integer對象,實例代碼如下:
Integer number = new Integer("7");
2、常用方法:
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte類型返回該Integer的值 |
compareTo(Integer anotherInteger) | int | 在數字上比較兩個Integer對象。如果相同返回0;調用對象的數值小於anotherInteger返回負值,反之,返回正值。 |
equals(Object IntegerObj) | boolean | 比較此對象與指定對象是否相等 |
intValue() | int | 以int型返回此Integer對象 |
shortValue() | short | 以short型返回此Integer對象 |
toString() | String | 返回一個表示該Integer值的String對象 |
valueOf(String str) | Integer | 返回指定Sting值的Integer對象 |
parseInt(String str) | int | 返回包含在由str指定的字符串中的數字的等價整數值 |
3、常用的常量:
① MAX_VALUE:表示int型可取的最大值
② MIN_VALUE:表示int型可取的最小值
③ SIZE:表示以2進制補碼形式表示int值的位數
④TYPE:表示基本類型class實例
int maxint = Integer.MAX_VALUE;
int minint = Integer.MIN_VALUE;
int intsize = Integer.SIZE;
System.out.println("int類型可取的最大值:"+maxint);
System.out.println("int類型可取的最小值:"+minint);
System.out.println("int類型的二進制位數:"+intsize);
2、Boolean
Boolean類型將基本類型爲boolean的值包裝在一個對象中。一個Boolean類型的對象只包含一個類型爲boolean的字段。此外,此類還爲boolean和String的相互轉換提供了許多方法,並提供了處理boolean時非常有用的一些常量和方法。
1、構造方法
① 創建一個表示value參數的boolean對象,實例如下:
Boolean b = new Boolean(true);
② 以String變量作爲參數,創建boolean對象。此時,如果傳入的字符串不爲null,且忽略大小寫後的內容等於“true”,則 生成Boolean對象值爲true,反之爲false。
Boolean b1 = new Boolean("OK");
Boolean b2 = new Boolean("TRUE");
System.out.println(b1);//false
System.out.println(b2);//true
2、常用方法:
方法 | 返回值 | 功能描述 |
---|---|---|
booleanValue() | boolean | 將Boolean對象的值以對應的boolean值返回 |
equals(Object obj) | boolean | 判斷調用該方法的對象與obj是否相等,當且僅當參數不是null,而且與調用該方法的對象一樣都表示同一個boolean值的Boolean對象時才返回true |
toString() | String | 返回一個表示該boolean值的String對象 |
valueOf(String str) | boolean | 返回一個用指定的字符串表示值的boolean值 |
parseBoolean(String str) | boolean | 將字符串參數解析爲boolean值 |
Boolean b1 = new Boolean("OK");
Boolean b2 = new Boolean(false);
System.out.println(b1.booleanValue());//false
System.out.println(b2.booleanValue());//false
3、常用的常量
① TRUE:對應基值true的Boolean對象;
② FALSE:對應基值false的Boolean對象;
③ TYPE:表示基本類型Class實例。
3、Byte
Byte類將基本類型爲byte的值包裝在一個對象中,一個byte類型的對象只包含一個類型爲byte的字段。
1、構造方法
Byte類提供了兩種構造方法的重載形式來創建Byte類對象。
① Byte(byte value)通過這種方法創建的byte對象,可表示指定的byte值。
byte b = 45;
Byte b1 = new Byte(b);
② Byte(String str) 通過這種方法創建的byte對象,可表示String參數指定的byte值。
Byte b1 = new Byte("12");
2、常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以一個byte值返回Byte對象 |
compareTo(Byte anotherByte) | int | 在數字上比較兩個Byte對象。 |
doubleValue() | double | 以一個double值返回Byte對象 |
equals(Object obj) | boolean | 比較此對象與指定對象是否相等 |
intValue() | int | 以int值返回此Byte的值 |
toString() | String | 返回一個Byte值的String對象 |
valueOf(String str) | byte | 返回指定Sting值的Byte對象 |
parseByte(String str) | byte | 返回包含在由str指定的字符串中的數字的等價byte |
3、常用常量
① MAX_VALUE:最大值
② MIN_VALUE:最小值
③ SIZE:2進制
④TYPE:表示基本類型byte的class實例
4、Character
Character類在對象中包裝一個基本類型爲char的值。一個Character對象包含類型爲char的單個字段。
1、構造方法
Character(char value)
2、常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
charValue() | char | 返回此Character對象的值 |
compareTo(Character anotherCharacter) | int | 在數字上比較兩個Character對象。 |
equals(Object obj) | boolean | 比較此對象與指定對象是否相等 |
toString() | String | 返回一個表示該char值的String對象 |
toUpperCase(char ch) | char | 將字符參數轉爲大寫 |
toLowerCase(char ch) | char | 將字符參數轉爲小寫 |
isUpperCase(char ch) | boolean | 判定指定字符參數是否爲大寫 |
isLowerCase(char ch) | boolean | 判定指定字符參數是否爲小寫 |
5、Double
Double和Float包裝類是對double、float基本類型的封裝,他們都是Number類的子類,又都是對小數進行操作,所以常用基本方法相同。
Double類在對象中包裝一個基本類型爲double的值,每個double類都包含一個double類型的字段。
1、構造方法
Double類提供了兩種構造方法來獲得Double對象;
① Double(double value):基於double參數創建Double類對象。
② Double(String str): 構造一個新分配的Double對象,表示用字符串表示的Double類型的浮點值。
2、常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte類型返回該Double對象的值(通過強制轉換) |
compareTo(Double d) | int | 在數字上比較兩個Double對象。如果相同返回0;調用對象的數值小於d返回負值,反之,返回正值。 |
equals(Object obj) | boolean | 比較此對象與指定對象是否相等 |
intValue() | int | 以int型返回此Double對象 |
isNaN() | boolean | 如果此double是非數字,則返回true |
toString() | String | 返回此Double對象值的String對象 |
valueOf(String str) | double | 返回指定Sting值的Double對象 |
doubleValue() | double | 以double形式返回此Double對象 |
longValue() | long | 以long形式返回此Double對象(通過強制轉換) |
3、常用常量
6、Number
抽象類Number是父類,Number類的子類必須提供將表示數值轉換成byte、double、float、long、int、short的方法。
常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte類型返回指定的數值 |
intValue() | int | 以int類型返回指定的數值 |
floatValue() | float | 以float類型返回指定的數值 |
shortValue() | short | 以short類型返回指定的數值 |
longValue() | long | 以long類型返回指定的數值 |
doubleValue() | double | 以double類型返回指定的數值 |