2.2 基本數(shù)據(jù)類型
展開:JAVA數(shù)據(jù)類型思維導(dǎo)圖
2.2.1 基本數(shù)據(jù)類型
Java 中的基本數(shù)據(jù)類型包括以下幾種:
- 整型:byte、short、int、long
- 浮點型:float、double
- 布爾型:boolean
- 字符型:char
2.2.2 基本數(shù)據(jù)類型的默認(rèn)值
Java 中基本數(shù)據(jù)類型的默認(rèn)值如下:
- 整型:0
- 浮點型:0.0
- 布爾型:false
- 字符型:'\u0000'
- 引用類型:null
2.2.3 基本數(shù)據(jù)類型的轉(zhuǎn)換
Java 中基本數(shù)據(jù)類型的轉(zhuǎn)換包括以下幾種:
- 自動類型轉(zhuǎn)換:將較小的數(shù)據(jù)類型轉(zhuǎn)換為較大的數(shù)據(jù)類型,例如將 byte 轉(zhuǎn)換為 int。
- 強(qiáng)制類型轉(zhuǎn)換:將較大的數(shù)據(jù)類型轉(zhuǎn)換為較小的數(shù)據(jù)類型,例如將 int 轉(zhuǎn)換為 byte。
- 隱式類型轉(zhuǎn)換:將基本數(shù)據(jù)類型轉(zhuǎn)換為對應(yīng)的包裝類,例如將 int 轉(zhuǎn)換為 Integer。
- 顯式類型轉(zhuǎn)換:將包裝類轉(zhuǎn)換為基本數(shù)據(jù)類型,例如將 Integer 轉(zhuǎn)換為 int。
- 類型提升:將較小的數(shù)據(jù)類型提升為較大的數(shù)據(jù)類型,例如將 byte 和 int 相加時,byte 會被提升為 int。
2.2.4 基本數(shù)據(jù)類型的范圍
Java 中基本數(shù)據(jù)類型的范圍如下:
- byte:-128 到 127
- short:-32,768 到 32,767
- int:-2^31 到 2^31-1
- long:-2^63 到 2^63-1
- float:大約 ±3.40282347E+38F(有效位數(shù)為 6-7 位)
- double:大約 ±1.79769313486231570E+308(有效位數(shù)為 15 位)
- char:0 到 65535
- boolean:true 或 false
2.2.5 基本數(shù)據(jù)類型的常量
Java 中基本數(shù)據(jù)類型的常量包括以下幾種:
- 整型常量:例如 10、-20、0x1A 等。
- 浮點型常量:例如 3.14、-0.5、1.23E-4 等。
- 布爾型常量:true 和 false。
- 字符型常量:例如'a'、'b'、'\u0000'等。
- **說明**:
- 字符型常量可以使用轉(zhuǎn)義字符表示特殊字符,例如'\n'表示換行符,'\t'表示制表符。
- '\u0000'表示一個空白字符,即在單引號之間沒有任何字符。之所以能這樣表示是因為,Java 采用的是 Unicode 字符集,Unicode 字符以\u 開頭,空白字符在 Unicode 碼表中對應(yīng)的值為'\u0000'。
2.3 變量與常量
2.3.1 標(biāo)識符和關(guān)鍵字
1.標(biāo)識符和關(guān)鍵字
Java 中的標(biāo)識符是指用來標(biāo)識變量、類、方法等的名稱,關(guān)鍵字是 Java 語言中具有特殊含義的保留字。Java 中的標(biāo)識符必須以字母、下劃線或美元符號開頭,后面可以跟字母、數(shù)字、下劃線或美元符號。Java 中的關(guān)鍵字不能用作標(biāo)識符。
(1)標(biāo)識符的命名規(guī)則
Java 中的標(biāo)識符必須以字母、下劃線或美元符號開頭,后面可以跟字母、數(shù)字、下劃線或美元符號。Java 中的標(biāo)識符不能包含空格,不能包含特殊字符,不能包含 Java 關(guān)鍵字。
(2)關(guān)鍵字
Java 中的關(guān)鍵字包括以下幾種:
-
基本數(shù)據(jù)類型關(guān)鍵字:int、float、double、boolean、char、byte、short、long。
-
控制流程關(guān)鍵字:if、else、switch、case、default、for、while、do、break、continue、return、try、catch、finally。
-
類與對象關(guān)鍵字:class、interface、extends、implements、new、this、super、instanceof。
-
訪問控制關(guān)鍵字:public、protected、private。
-
其他關(guān)鍵字:void、null、true、false、import、package、abstract、final、native、static、strictfp、synchronized、transient、volatile。
表 Java 常用關(guān)鍵字及含義關(guān)鍵字 含義 abstract 聲明抽象類或抽象方法 boolean 布爾類型 break 跳出循環(huán)或 switch 語句 byte 字節(jié)類型 case switch 語句中的分支 catch 捕獲異常 char 字符類型 class 聲明類 continue 跳過本次循環(huán) default switch 語句中的默認(rèn)分支 do do-while 循環(huán) double 雙精度浮點類型 else if 語句中的 else 分支 extends 繼承 final 聲明常量或不可變類 finally try-catch 語句中的 finally 塊 float 單精度浮點類型 for for 循環(huán) if if 語句 implements 實現(xiàn)接口 import 導(dǎo)入類或包 instanceof 判斷對象是否為某個類的實例 int 整型 interface 聲明接口 long 長整型 native 聲明本地方法 new 創(chuàng)建對象 null 空值 package 聲明包 private 私有訪問控制 protected 受保護(hù)訪問控制 public 公共訪問控制 return 返回值 short 短整型 static 靜態(tài)方法或變量 strictfp 嚴(yán)格浮點運算 super 調(diào)用父類方法或變量 switch switch 語句 synchronized 同步方法或代碼塊 this 調(diào)用當(dāng)前對象的方法或變量 throw 拋出異常 throws 聲明方法可能拋出的異常 transient 不會被序列化的變量 try try-catch 語句中的 try 塊 void 無返回值 volatile 變量在多個線程中可見 while while 循環(huán)
Java 中的關(guān)鍵字具有以下特點:
- 關(guān)鍵字都是小寫的。
- 關(guān)鍵字不能用作標(biāo)識符。
- 關(guān)鍵字具有特殊的含義,不能隨意使用。
2.3.2 變量和常量
變量:變量是程序中用于存儲數(shù)據(jù)的容器,每個變量都有一個名稱(也稱為標(biāo)識符)和一個數(shù)據(jù)類型。變量可以在程序中多次使用,以存儲和操作數(shù)據(jù)。
常量:常量是程序中用于存儲固定值的容器,一旦被賦值,就不能再改變。常量通常用于表示程序中的固定值,如數(shù)學(xué)常數(shù) π、物理常數(shù)等。
Java 中的變量類型有:
- 基本數(shù)據(jù)類型:包括整數(shù)類型(byte、short、int、long)、浮點類型(float、double)、字符類型(char)和布爾類型(boolean)。
- 引用數(shù)據(jù)類型:包括類、接口、數(shù)組等。
Java 中的常量類型有:
-
字面量常量:包括整數(shù)常量、浮點常量、字符常量和字符串常量。
-
枚舉常量:使用 enum 關(guān)鍵字定義的常量集合。
-
常量變量:使用 final 關(guān)鍵字聲明的變量,其值在初始化后不能被改變。
1.變量
(1)變量的定義
變量的定義格式如下:
數(shù)據(jù)類型 變量名;例如:
int num; String name;變量的命名規(guī)則
變量的命名規(guī)則如下:
- 變量名必須由字母、數(shù)字和下劃線組成,不能以數(shù)字開頭。
- 變量名不能包含空格和特殊字符(如@、#、$等)。
- 變量名區(qū)分大小寫。
- 變量名不能與 Java 關(guān)鍵字沖突。
- 變量名應(yīng)具有一定的意義,以便于理解和維護(hù)代碼。
(2)變量的賦值和初始化
變量的初始化是指在定義變量的同時為其賦值。變量的初始化格式如下:
數(shù)據(jù)類型 變量名 = 值;例如:
int num = 10; String name = "John"; int intint = 0; //默認(rèn)值為0 int max=Integer.MAX_VALUE; //最大值(3)變量的使用
變量在使用之前必須先進(jìn)行初始化,否則會出現(xiàn)編譯錯誤。變量的使用格式如下:
變量名 = 值;例如:
num = 20; name = "Tom";
(4)變量的作用域
變量的作用域是指變量在程序中的可見范圍。根據(jù)變量的作用域,可以將變量分為局部變量和成員變量。
- 局部變量:在方法或代碼塊中定義的變量,只能在定義它的方法或代碼塊中使用。
- 成員變量:在類中定義的變量,可以在類的任何方法中使用。
例如:
public class MyClass {
int num; //成員變量
public void myMethod() {
int localNum; //局部變量
}
}
在上述代碼中,num 是成員變量,可以在 myMethod 方法中使用。localNum 是局部變量,只能在 myMethod 方法中使用。
2.常量
常量的定義格式如下:
final 數(shù)據(jù)類型 常量名 = 值;
例如:
final double PI = 3.1415926;
final String NAME = "John";
常量的值在程序運行期間不能被修改。常量的命名規(guī)則與變量類似,但常量名通常使用大寫字母,以示其不可變性。
2.4 數(shù)據(jù)類型間的相互轉(zhuǎn)換
Java 中的數(shù)據(jù)類型可以分為兩大類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。這里主要講基本數(shù)據(jù)類型之間的轉(zhuǎn)換。
-
基本數(shù)據(jù)類型之間的轉(zhuǎn)換可以分為自動類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。
2.4.1 自動(隱式)類型轉(zhuǎn)換
自動類型轉(zhuǎn)換是指當(dāng)兩個不同類型的數(shù)據(jù)進(jìn)行運算時,系統(tǒng)會自動將它們轉(zhuǎn)換為相同類型。自動類型轉(zhuǎn)換的規(guī)則如下:
- 如果兩個操作數(shù)都是整數(shù)類型,則將它們轉(zhuǎn)換為范圍更大的整數(shù)類型。
- 如果兩個操作數(shù)都是浮點類型,則將它們轉(zhuǎn)換為范圍更大的浮點類型。
- 如果一個操作數(shù)是整數(shù)類型,另一個操作數(shù)是浮點類型,則將整數(shù)類型轉(zhuǎn)換為浮點類型。
例如:
int a = 10; double b = 3.14; double c = a + b; //a被轉(zhuǎn)換為double類型,然后與b相加在上述代碼中,a 是整數(shù)類型,b 是浮點類型,a 被自動轉(zhuǎn)換為 double 類型,然后與 b 相加,得到的結(jié)果是 double 類型。
2.4.2 強(qiáng)制(顯式)類型轉(zhuǎn)換
強(qiáng)制類型轉(zhuǎn)換是指將一個數(shù)據(jù)類型轉(zhuǎn)換為另一個數(shù)據(jù)類型。強(qiáng)制類型轉(zhuǎn)換的格式如下:
(目標(biāo)類型) 值例如:
int a = 10; double b = 3.14; int c = (int) b; //將b轉(zhuǎn)換為int類型在上述代碼中,b 是 double 類型,需要將其轉(zhuǎn)換為 int 類型,因此使用強(qiáng)制類型轉(zhuǎn)換,將 b 轉(zhuǎn)換為 int 類型,得到的結(jié)果是 int 類型。
強(qiáng)制類型轉(zhuǎn)換可能會導(dǎo)致數(shù)據(jù)丟失或溢出,因此在使用強(qiáng)制類型轉(zhuǎn)換時需要謹(jǐn)慎。
例如,將一個 double 類型的值轉(zhuǎn)換為 int 類型時,小數(shù)部分將被截斷,可能導(dǎo)致數(shù)據(jù)丟失。因此,在使用強(qiáng)制類型轉(zhuǎn)換時,需要確保轉(zhuǎn)換后的數(shù)據(jù)不會丟失或溢出。double d = 3.14; int e = (int) d; //e的值為3,小數(shù)部分被截斷在上述代碼中,d 是 double 類型,需要將其轉(zhuǎn)換為 int 類型,因此使用強(qiáng)制類型轉(zhuǎn)換,將 d 轉(zhuǎn)換為 int 類型,得到的結(jié)果是 int 類型,但小數(shù)部分被截斷,因此 e 的值為 3。
2.4.3 基本數(shù)據(jù)類型與字符串之間的轉(zhuǎn)換
基本數(shù)據(jù)類型與字符串之間的轉(zhuǎn)換可以通過以下兩種方式實現(xiàn):
- 使用字符串的靜態(tài)方法 valueOf()將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串。
- 使用字符串的構(gòu)造方法將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串。
例如:
int a = 10; String str1 = String.valueOf(a); //將int類型轉(zhuǎn)換為字符串 String str2 = Integer.toString(a); //將int類型轉(zhuǎn)換為字符串 String str3 = "" + a; //將int類型轉(zhuǎn)換為字符串在上述代碼中,a 是 int 類型,需要將其轉(zhuǎn)換為字符串,因此使用 valueOf()方法或 toString()方法或字符串連接運算符將 a 轉(zhuǎn)換為字符串。
double b = 3.14; String str4 = String.valueOf(b); //將double類型轉(zhuǎn)換為字符串 String str5 = Double.toString(b); //將double類型轉(zhuǎn)換為字符串 String str6 = "" + b; //將double類型轉(zhuǎn)換為字符串在上述代碼中,b 是 double 類型,需要將其轉(zhuǎn)換為字符串,因此使用 valueOf()方法或 toString()方法或字符串連接運算符將 b 轉(zhuǎn)換為字符串。
將字符串轉(zhuǎn)換為基本數(shù)據(jù)類型可以通過以下兩種方式實現(xiàn): -
使用包裝類的靜態(tài)方法 parseXXX()將字符串轉(zhuǎn)換為基本數(shù)據(jù)類型。
-
使用包裝類的構(gòu)造方法將字符串轉(zhuǎn)換為基本數(shù)據(jù)類型。
例如:
String str7 = "123";
int c = Integer.parseInt(str7); //將字符串轉(zhuǎn)換為int類型
double d = Double.parseDouble(str7); //將字符串轉(zhuǎn)換為double類型
在上述代碼中,str7 是字符串,需要將其轉(zhuǎn)換為 int 類型或 double 類型,因此使用 parseInt()方法或 parseDouble()方法將 str7 轉(zhuǎn)換為 int 類型或 double 類型。
String str8 = "3.14";
double e = Double.parseDouble(str8); //將字符串轉(zhuǎn)換為double類型
int f = Integer.parseInt(str8); //將字符串轉(zhuǎn)換為int類型
在上述代碼中,str8 是字符串,需要將其轉(zhuǎn)換為 double 類型或 int 類型,因此使用 parseDouble()方法或 parseInt()方法將 str8 轉(zhuǎn)換為 double 類型或 int 類型。
浙公網(wǎng)安備 33010602011771號