1. 變量
存數的,代詞,指代它所存的數
1.1 聲明:變量名、變量類型;變量使用之前必須進行聲明、如果多個變量類型一樣,可以在一條語句中聲明,中間用逗號隔開;如下:
Int a;//聲明一個整型的變量,名為a
Int b,c,d;//聲明了三個整型變量,名為bcd
1.2 命名:規則:只能由字母、數字、下划線、$組成,首字符不能以數字開頭,Java大小寫敏感,不能使用java保留字和關鍵字(如:int; class; public; package; project; if; for ),中文可以作為變量名,但不提倡;見名知意;駝峰命名法:一個單詞小寫,兩個單詞以上組成,從第二個首字母開始大寫;帕斯卡命名法:所有首字母大寫
1.3 初始化:第一次賦值,變量在使用之前必須初始化,在聲明的同時賦值或先聲明后賦值但確定在第一次使用該變量之前.靜態成員變量必須在聲明同時初始化或構造器中初始化.
1.4 使用:必須與數據類型匹配;對變量的使用就是對它所存的數的使用;變量在用之前必須聲明並初始化
2.基本數據類型
2.1 有8種:int型(有范圍):整數;long型:整數;double型:浮點;char (男和女);boolean (true 和 false),不同類型所占空間大小不同,1G=1024M;1M=1024KB;1KB=1024B;1B=8Bit(位)
2.2 Int:整型,4個字節,只能裝整數,-21多億---21多億,-2147483648到2147483647
注意:1.整數直接量即直接寫出來的整數,整數直接量默認為int類型,但不能超出范圍,如果整數超出了int的表達范圍則會出現編譯錯誤
2.兩個整數相除,會舍棄小數部分並非四舍五入;求百分比先乘100再除
3.運算時超出范圍則發生溢出,溢出是需要避免的,其中運算超范圍是溢出,數值超范圍是編譯錯誤
2.3 Long:長整形,8個字節,整數,范圍很大,注意:數字后加L,若運算時有可能超出范圍,在第一個數字后加L,system.currentTimeMillis()可以獲取自1970-1-1零時到此時此刻的毫秒數
2.4 Double:8個字節,精度值是float的兩倍,默認的浮點值為double型,float型需要在數字后加F,運算時有些數會有誤差,精確運算場合可以使用BigaDecimal 需要精確運算小數時使用
2.5 Boolean:布爾型,1個字節,只能存儲true和false
2.6 Char:字符型,2個字節,Unicod編碼形式:0-65535
1.java中的char采用unicode編碼格式,一個字符(char)對應一個碼(int),表現形式是char字符,實質上是int碼;
2.字符需放在單引號中,有且僅有一個
3.特殊符號需通過轉義符進行轉義,\ 轉義符;\n表示回車;\r表示換行
4.字符類型事實上是一個16位無符號的整數,0---48,A--65,a---97
3.基本類型間的轉換
除boolean外的七種,類型從小到大依次為 byte short int long float double char
3.1 兩種方式:
3.1.1 自動類型轉換:從小類型到大類型
3.1.2 強制類型轉換:從大類型到小類型,有可能溢出,也有可能丟失精度轉換時在變量前加(數據類型) 例:long a=(int)b
3.2 兩點規則:
1.整數直接量可以直接賦值給byte,short,char ,例 byte=5可以,int a=5;byte=a則錯誤
2.byte,short,char,參與運算(+=等除外,系統自動做強轉),系統直接轉換為int型再運算
3.3 Scanner的用法
3.3.1 給變量賦值:
1.賦一個固定的值(int age=37);
2.接收用戶輸入的值(int age=?);
3.系統隨機生成的值 (int age=?);
3.3.2 Scanner用法步驟:
1.在package下:import java.util.Scanner;
2.在main中: Scanner scan=new Scanner(System.in);
3.在第二步下:System.out.print("請輸入年齡");int age=scan.nextInt();