資料型別以及變數
資料型別
強型別語言(安全性更高,速度更慢)
要求變數的使用要嚴格符合規定,所有變數都必須先定義後才能使用 ★
此時的i
還未初始化,例項化,需要賦值
弱型別語言(安全性更低,速度更快)
Java的資料型別分為兩大類
- 基本型別
- 引用型別
什麼是位元組
-
位(bit):計算機內部資料儲存的最小單位,10101010就是一個八位的二進位制數。
-
位元組(byte):計算機中資料處理的基本單位,用大寫B來表示
-
1B(byte,位元組)= 8bit(位)
-
字元:是指計算機中使用的字母、數字、字和符號
1bit代表一位,1Byte代表一個位元組(1B = 8b)
整數
整數中具有進位制關係
-
二進位制:一般以0b作為開頭,比如0101=5。
-
八進位制:一般以0作為開頭,比如010=8。
-
十進位制:就是我們常用的0~9,逢十進一。
-
十六進位制:一般以0x作為開頭,比如0x010=16,範圍09,AF。
結果:
浮點數
float: 長度有限、離散、具有舍入誤差、大約,接近但不等於。
最好完全避免使用浮點數進行比較
浮點數之間具有一定的誤差存在
比如
float f = 121212121212f;
float f2 = f+1;
System.out.println(f==f2);
以上這段程式碼,我們憑藉感覺走判斷,執行結果一定是false,然而
所以還是上面那句話最好完全避免使用浮點數來進行比較
字元
所有字元的本質都是數字,是進行了轉換後的結果
比如:
這裡為了能夠更直觀的看出,我們對輸出結果進行了強制轉換處理(直接輸出是不變的)。
可以看出a和白兩個字元都被數字所替代了,並且它們不是隨機生成的,反過來還是相對應的字元。
在使用的過程中可以使用查詢ASCII碼錶來檢視這些字元代表的數字
布林值
boolean flag = true;
if (flag == true){}
if(flag){}
以上的兩個兩個語句中的flag所表示的都是true,後一個預設表示的boolean值為true,兩種表示方式都沒有問題。
型別轉換
在進行運算的過程中,不同的資料型別會先轉化為同一型別後再進行計算。
資料優先順序大小關係:
低《=======================================》高
byte,short,char => int=>long=>float=>double
強制轉換
從高位資料型別轉換為低位資料型別時需要進行強制轉換。
格式: (轉換型別)變數名
比如: int a = 127;
byte b = (byte)a
高==>低
這裡在程式中如果不進行強制轉換的話程式在進行編譯時就會報錯。
自然轉換
從低位資料型別轉換到高位資料型別時自動發生
自然轉換存在於低位資料向高位資料時,不需要像強制轉換一樣進行手動操作,系統會自動將其轉換。
注意:
- 不能夠對布林值進行轉換
- 不能夠把物件型別轉換為不相干的型別
- 在把高位資料轉換為低位資料時需要用到強制轉換
- 在轉換時可能會遇到記憶體溢位和精度等問題,在使用過程中需要自己注意。
變數
變數:可以進行變化的量
Java是一種強型別的語言,每一個變數都必須申明其型別。
Java變數是程式中最基本的儲存單元,其要素包括變數名,變數型別和做作用域。
基本格式
int a = 10; //資料型別 變數名 = 值;
int a = 10,a1 = 11,a2 = 12; //可以用逗號隔開來同時定義同一型別的變數,儘量不要這樣寫,最好是一個變數一個分號,保證程式的可讀性
注意:
每一個變數都有型別,型別既可以是基本型別,也可以是引用型別。
變數名必須是合法的識別符號。
變數宣告是一個完整的語句,所以每一個變數宣告都必須以分號結束。
沒有給定變數初始值時,除了boolean
預設為false
以及八大基本型別預設為0以外,其餘的變數預設初始值都為null
。
常量
常量:在初始化後不能再改變(不會變動)的值
常量可以理解為一種特殊的變數,它的值在被設定後,在程式的執行過程中不允許被改變。
格式:
final 變數型別 常量名 = 值;
final double PI = 3.14;
常量名一般都是大寫字母,比如此處的PI
變數的命名規範
- 所有的變數、方法和類名都要遵循見名知意的原則(即能夠通過變數名一眼看出表達的意思和意義)
- 類成員變數:首字母小寫和駝峰原則(keyBoard),即出了第一個單詞以外,以後的單詞首字母都大寫oneTwoThree
- 區域性變數:首字母小寫和駝峰原則
- 常量:大寫字母和下劃線:MAX_VALUE
- 類名:首字母大寫和駝峰原則=> Student、 MaxValue
- 方法名:首字母小寫和駝峰原則:run(),runRun()
命名規範都是為了便於閱讀