1. Java的簡單類型及其封裝器類
java中的基本資料類型大概可以分為三大類,字元型,布爾型,數值類型
字元型:
類型 | 二進制位數 | 資料範圍 | 包裝類 |
char | 16位 | 存儲Unicode碼 | Character |
數值類型:
最大存儲資料量 | ||||
byte | 8 | 255 | -128~127之間 | Byte |
short | 16 | 65536 | -32768~32767之間 | Short |
int | 32 | 2的32次方減1 | 負的2的31次方到正的2的31次方減1 | Integer |
lang | 64 | 2的64次方減1 | 負的2的63次方到正的2的63次方減1 | Long |
float | 3.4e-45~1.4e38 | Float | ||
double | 4.9e-324~1.8e308 | Double |
布爾型
boolean | 1 | true/false | Boolean |
對于數值類型的基本類型的取值範圍,我們無需強制去記憶,因為它們的值都已經以常量的形式定義在對應的包裝類中了。如:
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 System.out.println("位數"+Byte.SIZE);
6 System.out.println("最大值"+Byte.MAX_VALUE);
7 System.out.println("最小值"+Byte.MIN_VALUE);
8
9 }
10
11
12 }
我們看看輸出的結果:

其他的基本資料類型我們也能這樣取出來;
還有就是 float 在申明指派的時候 後面必須加f或者F 如:
double後面加不加辨別符都無所謂
Java基本類型存儲在棧中,是以它們的存取速度要快于存儲在堆中的對應包裝類的執行個體對象。從Java5.0(1.5)開始,JAVA虛拟機(Java Virtual Machine)可以完成基本類型和它們對應包裝類之間的自動轉換。是以我們在指派、參數傳遞以及數學運算的時候像使用基本類型一樣使用它們的包裝類,但這并不意味着你可以通過基本類型調用它們的包裝類才具有的方法。另外,所有基本類型(包括void)的包裝類都使用了final修飾,是以我們無法繼承它們擴充新的類,也無法重寫它們的任何方法。
基本類型的優勢:資料存儲相對簡單,運算效率比較高
包裝類的優勢:有的容易,比如集合的元素必須是對象類型,滿足了java一切皆是對象的思想
2. 資料類型之間的轉換
簡單類型資料間的轉換,有兩種方式:
自動轉換和強制轉換,通常發生在表達式中或方法的參數傳遞時。
自動轉換:
具體地講,當一個較"小"資料與一個較"大"的資料一起運算時,系統将自動将"小"資料轉換成"大"資料,再進行運算。這些類型由"小"到"大"分别為 (byte,short,char)--int--long--float—double。這裡我們所說的"大"與"小",并不是指占用位元組的多少,而是指表示值的範圍的大小。
簡單的小例子:
1 public class JiBen {
2 public static void main(String[] args) {
3 int num1=12;
4 double num2=10.0;
5 System.out.println(num1+num2);
6 }
運作為:
是不是資料類型被提升到了double類型了;
下面的語句可以在Java中直接通過:
如果低級類型為char型,向進階類型(整型)轉換時,會轉換為對應ASCII碼值(ASCII(American Standard Code for Information Interchange,美國資訊交換标準代碼)是基于
拉丁字母的一套電腦編碼系統,主要用于顯示現代
英語和其他
西歐語言。它是現今最通用的單
位元組 編碼系統,并等同于
國際标準ISO/IEC 646。),例如
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 char c='c'; int i=c;
6 System.out.println(i);
7
8 }
9 }
結果為:
強制轉換
将"大"資料轉換為"小"資料時,你可以使用強制類型轉換。這種轉換肯定可能會導緻溢出或精度的下降。
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 double num1=12.223;
6 int num2=(int) num1;
7 System.out.println(num2);
8 }
9 }
結果為:
這種轉換很容易就導緻了精度的下降;
包裝類過渡類型轉換:
一般情況下,我們首先聲明一個變量,然後生成一個對應的包裝類,就可以利用包裝類的各種方法進行類型轉換了 如:
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 float f1=12.2F;
6 Float f2=new Float(f1);
7 double d1=f2.doubleValue();
Double d2=new Double(d1);
int num2=d2.intValue();
8 }
9 }
在各個包裝類中,總有形為××Value()的方法,來得到其對應的簡單類型資料。利用這種方法,也可以實作不同數值型變量間的轉換,例如,對于一個雙精度實型類,intValue()可以得到其對應的整型變量,而doubleValue()可以得到其對應的雙精度實型變量。
基本資料類型與字元串之間的轉換
基本資料類型--------------------------------》》》字元串
toString();
基本資料類型的都有一個靜态方法toString(),轉換時可以采用 "封裝類型.toString(對應的基本資料類型字面值)" 方法來轉換成字元串。
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 Integer i1=new Integer(122);
6 i1.toString();
7
8 Double d1=new Double(12.1);
9 d1.toString();
10 }
11 }
+" " 可以使用這種拼接的方法實作轉換
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 int a=12;
6 String a2="hahah"+a;
7 }
8 }
valueOf:利用String類的靜态方法valueOf()。
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 int a=12;
6 String.valueOf(a);
7 }
8 }
字元串--------------------------------》》》基本資料類型
利用基本資料類型包裝類的parseXxx方法(需注意字元串轉成基本資料類型時字元串内容必須是基本資料類型的字面值,否則編譯雖然能通過,但運作時出現NumberFormatException)
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 String a="1212";
6 int a2=Integer.parseInt(a);
7
8 double a3=Double.parseDouble(a);
9 }
10 }
用字元串構造基本類型的封裝對象,再調用封裝對象的xxxValue方法
1 package Jiben;
2
3 public class JiBen {
4 public static void main(String[] args) {
5 String a="1212";
6 Integer a2=new Integer(a);
7 int a3=a2.intValue();
8 }
9 }
基本資料類型就說到這;
歡迎大家一起說出自己的想法。