Java 基礎數據類型
Java的兩大數據類型:基本數據類型、引用類型。
Java語言提供了八種基本數據類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。
整形:byte,short,int,long
字符類型:char
浮點類型:float,double
布爾類型:boolean
示例如下:
Java每個基本類型在java.lang包中都有一個相應的包裝類,集合不允許存放基本數據類型數據,存放數字時,要用包裝類型。
集合不允許存放基本數據類型數據,存放數字時,要用包裝類型
這八種包裝類所繼承的父類不全都相同。
? Integer ,Byte,Float,Double,Short,Long都屬于Number類的子類,Number類本身提 供了一系列的返回以上六種基本數據類型的操作。
? Character屬于Object子類。
? Boolean屬于Object子類。
裝箱及拆箱
? 將基本數據類型變成包裝類稱為裝箱。
? 將包裝類的類型變為基本數據類型稱為拆箱。
? 在JDK1.5之后,提供了自動裝箱和自動拆箱功能。
//自動裝箱和自動拆箱
Integer int1 = 30;//裝箱
int int2 = int1;//拆箱
基本數據類型包裝類如下所示:
數據類型 | 包裝類 |
---|---|
byte | Byte |
short | Short |
long | Long |
char | Charcater |
byte | Byte |
類型轉換示例如下:
//類型轉換(使用包裝類)
String str = "12";
double doubleB = Double.parseDouble(str);
System.out.println(doubleB);
結果如下:
// 包裝類提供一些類型轉換的方法 、類型的屬性
String str = "123";
int a = Integer.parseInt(str);//標準的int
int b = Integer.valueOf(str);//并不是標準的int ,但返回結果一樣
System.out.println(a);
System.out.println(b);
String strxs = "124";
byte xcv = Byte.valueOf(strxs);//valueOf parseByte作用是一樣的
byte cvds = Byte.parseByte(strxs);
System.out.println(xcv);
System.out.println(cvds);
結果如下:
關于類型的轉換:
一、自動類型轉換(隱式類型轉換)
? 小的類型自動轉化為大的類型。
? 整數類型可以自動轉化為浮點類型,可能會產生舍入誤差。
? 字符可以自動提升為整數。
byte byte1=10;
int Value1=byte1+5;
System.out.println(Value1);
? 整數類型可以自動轉化為浮點類型,可能會產生舍入誤差。
? Float和Double提供了快速的運算,然而問題在于轉換為二進制的時候,有些數字不能完全轉換,只能無限接近于原本的值。
? 整數類型的為準確值,浮點型中為精確值(無限接近于真實值)
float float1=2+10f;
float Value2=float1-11.9f;
System.out.println(Value2);
結果如下:
二、強制類型轉換(顯式類型轉換)
強制類型轉換可能導致溢出或損失精度。
在把容量大的類型轉換為容量小的類型時必須使用強制類型轉換 。
浮點數到整數的轉換是通過舍棄小數得到,而不是四舍五入。
byte a1 = (byte) 127;
System.out.println("a1:"+a1);
byte d = (byte) 128; //溢出
System.out.println("d:" +d);
如下圖所示:a1 沒有溢出,當byte 滿127時,d 溢出。
使用強制類型轉換,把容量大的類型轉換為容量小的類型。
int intValueA=127;
byte byteValueB=(byte) intValueA;
System.out.println(byteValueB);
int ValueA=128; //溢出
byte ValueB=(byte) ValueA;
System.out.println(ValueB);
如圖所示ValueB 溢出:
浮點數到整數的轉換是通過舍棄小數得到,而不是四舍五入。
int Value5=(int)23.7;
int Value6=(int)-23.7;
System.out.println(Value5);
如圖所示: