常數與變數
什麼是常數和變數
常數與變數都是程式在運行時用來儲存資料一塊記憶體空間
常數:
常數的值在程式運作時不能改變,java中宣告常數必須使用final關鍵字。常數也可以分為兩種意思:
第1種意思,就是一個值,這個值本身,我們可以叫它常數,舉幾個例子:
整型常數: 123
實型常數:3.14
字元常數: 'a'
邏輯常數:true、false
字串常數:"helloworld"
這只是說法的問題,例如7這個數,我們就可以說「一個int類型的常數7 」
第2種意思,表示不可變的變量,這種也叫常數,從語法上來講也就是,加上final,使用final關鍵字來修飾某個變量,然後只要賦值之後,就不能改變了,就不能再被賦值了
//宣告一個int型別的常數i final int i = 1; //宣告一個String物件型別的常數s,"Hello"字串也是一個常數final String s = "Hello";
需要注意的是:常數在聲明時必須要為這個常數賦一個值。
變數:
是程式運行時用來儲存資料的記憶體空間,是程式中最基本的儲存單元,我們可以使用變數名稱存取變數。
Java變數的分類:
依宣告位置分:
局部變數
成員變數
方法的參數是局部變數。
public class Test{ int i1 = 1; //成員變數 public class static main(String[] args){ //args是方法的參數,所以也是局部變數int i2 = 2; //局部變數 }🎟
public static void main(String[] args){ 總聲明值int i2 = 2; //宣告的同時為其賦值,2這個值也叫「直接量」 System.out.PRintln(i1); //使用,將變數的值輸出到Java控制台} }
基本資料型別
Java是一種強型別語言,所謂強型別,就是每個變數運算式在編譯時就必須要有一個確定的資料型別。 Java資料型別分為兩大類:基本型別和引用型別。
引用資料型態為:類別、介面、陣列。
Java中的基本資料型別為四類八種,分別為:
基本資料型別
佔用空間:2位元組 布林型boolean 佔空間:1位元 位元組byte 短整型short 整數int 長整型長 型 long 1位元組 2位元組 4位元組 8位元組 -128~127 -32768~ 32767 -2147483648~2147483647 807 -3.403E38~3.403E38 -1.798E308
-1.798E308
-1.798E308~ 類型1385
Java整形常量默認為int類型,聲明long類型常量需要在後面加上L
Java語言整形常量的3種表現形式
十進制整數:如12,-15,0
八進制整數:要求以0開頭,如012
十六進制數:要求以0x或0X開頭,如0x12
註:因為Java中可以使用十六進制方式賦值,因此類似於十進制10與十六進制A在記憶體中沒有區別。
Java7之後Java中也可以使用二進位的方式為整形賦值。
byte b1 = 127; //正確byte b2 = 128; //錯誤,超出範圍short = b1; //正確,將另一個變數的值賦給該變量,且沒有超出範圍int i1 = 12;/ /正確int i2 = 012; //正確int i3 = 0x12; //正確System.out.println(i2); //輸出10,因為i2是以8進位方式賦值的System.out.println(i3) ; //輸出18,因為i3是以16進位方式賦值的long lo = 2147483648L; //long型別宣告需要加上L
點。表現形式:
十進制數形式:例如3.14 314.0 .314
科學計數法形式:如3.14e2 3.14E2 3.14E-2一個數位在某位常數後面加F
因為精確度問題,所以不要用浮點數類型做等於比較
float f1 = 123; float f2 = 123.4F; double d1 = 1234.5; double d = 3.141_592_65_336/5; double d = 3.141_592_65_32長的資料更有可讀性,可在數字之間使用底線
字元類型
字元類型是單引號的單一字元佔兩個字元個位元組,因而可以用十六進位編碼形式表示,如 char c = 'u0061';
允許使用轉義字元''將其後字元轉為其他意義,如 char c = 'n';換行
Java 常用的轉義字元
char c1 = '你'; //正確char c2 = '你好'; //錯誤char c3 = 'u9999'; //正確System.out.printSlnem.out.printSlnem.out.printSlnem.out.printSlnem.out.print (c3); //輸出'香'布爾類型
用來存放"真","假"的類型,只有true和false兩種值。
boolean b = true;
資料型別的轉換
精確度排序:(由低到高)
Byte
byte b = 127;short s = b; //會自動轉換為shortb = (byte)s; //不會自動轉換,需要強制轉換
double常數轉換成floatpublic class Test {
public static void main(String[] args) throws Exception { double d = ; float f = (float) d; //d的值已經超出了float的範圍,所以轉換會“溢出” ,但是編譯不會報錯System.out.println(f); //因為產生了溢出,所以輸出「Infinity」 }
}
類型會將系統運算元將在運算元轉換為算結果賦給原來的類型時需要強制轉換。
byte b1 = 1;byte b2 = (byte) (b1 + 2); //數值運算時會自動轉換為int,所以計算出結果後將值再賦給byte類型變數b2時需要強制轉換
如果常數值超出了預設型別時,必須在後面加大於該預設型別的數值型別開頭字母,如long num=30000000000L; 因為整數型別預設為int,但30000000000在int中放不下,所以要在後面加小寫l或大寫L,轉換為long型。
(資料型別名)要轉換的變數或值 與 要轉換的變數或值+轉換符 這兩種轉換方式有本質上的區別,前一種表示它在電腦中是他原來的型別,再把它強制轉換成現在的類型,後一種表示它一開始在電腦裡就已經是轉換完成了的這種類型。
long lo = (long)2;long lo2 = 2L; //這兩個陳述或轉換有本質差異
以上就是[Java入門筆記]Java語言基礎(二):常數、變數與資料類型的內容,更多相關內容請關注PHP中文網(www.php.cn)!