一丶變量的基本概念
1.什么是變量
(1).內存中的一個存儲區域
(2).該區域有自己的名稱(變量名),和類型(數據類型)
(3.)該區域的數據可以在同一類型范圍內不斷變化(定義變量的主要目的是因為數據的不確定性)
2.為什么要定義變量
用來不斷存放同一類型的常量,并可以重復使用
3.變量的類型
一般使用使用Int,byte也比較常用 ?因為他是數據的最小單元
二丶類型的提升&強制轉換
1.兩個不同類型無法進行 計算 ,因為內存空間大小不一致
2.除非是數值類型,因為可以類型自動提升
注:圖中是byte類型自動類型提升為整型 ?音為byte類型是一個八位,int 是四個八位,所以可以自動提升,反之,int 自動類型轉換byte則不可以 ,因為會丟失精度
如果必須要將byte轉換為Int 類型 ,則需要強制類型轉換(int有四個8位,若要強制轉為為byte 則會把前面三個8位舍棄掉,丟失精度,慎用)
三丶類型運算細節
//1
byte a=4;
a=3+7;
//2
byte b=3;byte c=7;
a=b+c;
System.out.println(a);
1.第一代碼塊執行過程是首先聲明變量,判斷賦給變量的值是否在byte類型的取值范圍內(-128~127)如果在,則會自動將int類型轉換為byte類型(也就是去掉前面的3個8位),第二行復制代碼,因為3和7的和是整型,所以在賦值時也是先判斷賦給a的值是否在byte類型范圍內,如果存在,則賦值給a,如果不存在則編譯報錯;
2.第二代碼塊同上,聲明兩個變量,然后把兩個變量值相加,因為b和c是變量,變量的值是變化的,不確定的,因為無法再程序運行之前判斷兩個變量的值是否在byte取值范圍內,所有會直接編譯報錯。
int a=5;int b=Integer.MAX_VALUE;int c=10;
a=b+c;
System.out.println(a);
1.而int 類型不會出現問題,因為整型計算得到的所有結果都是整型,如果運算結果大于整型取值范圍,則會去掉高位,保留32位