java变换变量赋值_Java变量的类型转换
在程序中,當把一種數據類型的值賦給另一種數據類型的變量時,需要進行數據類型轉換。根據轉換方式的不同,數據類型轉換可分為兩種:自動類型轉換和強制類型轉換。自動類型轉換
自動類型轉換也叫隱式類型轉換,指的是兩種數據類型在轉換的過程中不需要顯式地進行聲明。要實現自動類型轉換,必須同時滿足兩個條件,第一是兩種數據類型彼此兼容,第二是目標類型的取值范圍大于源類型的取值范圍。例如:byte?b?=?3;
int?x?=?b;?//程序把byte?類型的變量b?轉換成了int?類型,無須特殊聲明
上面的語句中,將byte類型的變量b的值賦給int類型的變量x,由于int類型的取值范圍大于byte類型的取值范圍,編譯器在賦值過程中不會造成數據丟失,所以編譯器能夠自動完成這種轉換,在編譯時不報告任何錯誤。
除了上述示例中演示的情況,還有很多類型之間可以進行自動類型轉換,接下來就列出3種可以進行自動類型轉換的情況,具體如下:
整數類型之間可以實現轉換,如byte類型的數據可以賦值給short、int、long類型的變量,short、char類型的數據可以賦值給int、long類型的變量,int類型的數據可以賦值給long類型的變量。
整數類型轉換為float類型,如byte、char、short、int類型的數據可以賦值給float類型的變量
其他類型轉換為double類型,如byte、char、short、int、long、float類型的數據可以賦值給double類型的變量。強制類型轉換
強制類型轉換也叫顯式類型轉換,指的是兩種數據類型之間的轉換需要進行顯式地聲明。當兩種類型彼此不兼容,或者目標類型取值范圍小于源類型時,自動類型轉換無法進行,這時就需要進行強制類型轉換。public?class?Example01?{
public?static?void?main(String[]?args)?{
int?num?=?4;
byte?b?=?num;
System.out.println(b);
}
}
編譯程序報錯
出現這樣錯誤的原因是將一個int型的值賦給byte類型的變量b時,int類型的取值范圍大于byte類型的取值范圍,這樣的賦值會導致數值溢出,也就是說一個字節的變量無法存儲四個字節的整數值。
在這種情況下,就需要進行強制類型轉換,具體格式如下:目標類型?變量?=?(目標類型)值
將例中第4行代碼修改為下面的代碼:byte?b?=?(byte)?num;
再次編譯后,程序不會報錯,運行結果如圖所示。
需要注意的是,在對變量進行強制類型轉換時,會發生取值范圍較大的數據類型向取值范圍較小的數據類型的轉換,如將一個int類型的數轉為byte類型,這樣做極容易造成數據精度的丟失。
總結
以上是生活随笔為你收集整理的java变换变量赋值_Java变量的类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS入门-公司通讯录项目(教你一步步完
- 下一篇: 日置BT3562无法开机怎么办,日常如何