標籤:而不是 表示 硬碟 image 通過 blog 指派 存放裝置 而且
今日內容介紹
1、變數
2、 運算子
變數
1.1、變數概述
前面我們已經學習了常量,接下來我們要學習變數。在Java中變數的應用比常量的應用要多很多。所以變數也是尤為重要的知識點!
什麼是變數?變數是一個記憶體中的小盒子(小容器),容器是什嗎?生活中也有很多容器,例如水杯是容器,用來裝載水;你家裡的大衣櫃是容器,用來裝載衣褲;飯盒是容器,用來裝載飯菜。那麼變數是裝載什麼的呢?答案是資料!
結論:變數是記憶體中裝載資料的小盒子,你只能用它來存資料和取資料。
1.2 電腦儲存單元
變數是記憶體中的小容器,用來儲存資料。那麼電腦記憶體是怎麼儲存資料的呢?無論是記憶體還是硬碟,電腦存放裝置的最小資訊單元叫“位(bit)”,我們又稱之為“位元位”,通常用小寫字母b表示。而電腦最小的儲存單元叫“位元組(byte)”,通常用大寫字母B表示,位元組是由連續的8個位組成。
當程式需要使用儲存空間時,作業系統最小會指派給程式1個位元組,而不是1個位。你可能會說,如果程式只需要1個位的空間,系統指派不能只指派1個位嗎?答案是不能!這就像你只需要1支煙,你到商店去買煙,商店指派的最小單元是1盒(20支),他不可能賣給你1支煙。
你可能會想,1個位元組(8位)可以儲存很大的數值了,1位最大是9那麼8位最大值為99999999。你錯了,因為電腦是採用二進行儲存的,而不是我們生活中常用的十進位。所以1個位元組儲存的最大資料是11111111的位元。
除了位元組外還有一些常用的儲存單位,大家可能比較熟悉,我們一起來看看:
1B(位元組) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1.3
基本類型之4類8種
大衣櫃不能用來裝載水,水杯也不能用來裝載衣褲。這說明不同的容器裝載不同的物品。變數也是如此,在建立變數時需要指定變數的資料類型,例如整型變數、浮點型變數等等。
結論:變數必須要有明確的類型,什麼類型的變數裝載什麼類型的資料。
水杯是用來裝水的,那麼水杯能裝多少水呢?一噸?我們知道水杯在建立時不只確定了要裝載的是水(資料類型),而且還確定了能裝多少水(資料類型的具體種類)。變數也是如此,需要指定變數能裝載什麼類型的資料,同時也要指定變數能裝載多大的資料。
Java中基本類型一共4類,把這4類展開後共8種基本類型。我們今後編寫程式時使用的是這8種基本類型而不是4類,這8種基本類型指定了範圍。
1.4 常量與類型
前面我們說過100是整數常量,但它是byte、short、int、long中的哪一種呢?下面我們來聊聊這一常量類型的問題。
整數常量可以根據所在範圍來確定類型,例如100在-128~127之間,所以他是byte類型;500在-32768~32767之間,所以它是short類型;100000在-2147483648~2147483648之間,所以它是int類型。java中預設的整數類型是int類型
你可能會認為12345678901在-263~263-1之間,所以它是long類型。注意了,這是錯誤的!!!在Java中整數常量如果不在-2147483648~2147483648之間就必須添加“L”尾碼(小寫也可以,但建議使用大寫),在-2147483648~2147483648之間的也可以添加“L”尾碼。也就是說12345678901不在-2147483648~2147483648之間,所以它在Java中是錯誤的常量,你必須這樣寫:12345678901L,這才是正確的常量。所以添加了“L”尾碼的整數常量都是long類型的,例如:100L、12345678901L都是long類型的常量。
浮點類型的常量也可使用尾碼,在Java中所有沒有尾碼以及使用“D”尾碼(小寫也可以,但建議使用大寫)的小數都是double類型;float類型常量必須添加“F”尾碼(小寫也可以,但建議使用大寫)java中預設的浮點類型是double類型
3.14沒有尾碼,所以它是double類型;
5.28D為double類型;
1.26F為float類型。
1.5
定義變數(建立變數)
定義變數的文法格式:
資料類型 變數名 = 資料值;int a = 100;
其中int是資料類型,指定了變數只能儲存整數,而且指定了儲存範圍為-2147483648~2147483648。
其中a表示變數名,變數名是標識符,這說明只要是合法的標識符都可以用來做變數名。在程式中可以通過變數名來操作變數(記憶體中的小盒子)。
其中“=100”是給變數賦值,即向a變數中寫入100(變數是個小盒子,現在小盒子中儲存的是100)。注意,給變數賦的值一定要與類型符合,也就是說int類型只能儲存整數,而且必須是在-2147483648~2147483648範圍內的整數。100滿足了這兩個條件,所以是正確的。
練習:
Variabe.java
/*變數定義格式:資料類型 變數名 = 變數值;*/public class Variable {public static void main(String[] args) { int a = 10; double b = 3.14; char c = ‘z‘; String s = "i love java"; a = 20; System.out.println(a); }}1.6
變數使用的注意事項
我們使用變數的時候需要注意,要滿足變數的使用規則才可以使用的,我們來看看都有哪些注意事項。
l 變數使用的注意事項
l 變數定義後可以不賦值,使用時再賦值。不賦值不能使用。
public static void main(String[] args) {int x;x = 20; //為x賦值20System.out.println(x);//讀取x變數中的值,再列印}
l 變數使用時有範圍的限制。
public static void main(String[] args) {int x = 20;{ int y = 20;}System.out.println(x);//讀取x變數中的值,再列印System.out.println(y);//讀取y變數中的值失敗,失敗原因,找不到y變數,因為超出了y變數作用範圍,所以不能使用y變數}
l 變數不可以重複定義。
public static void main(String[] args){ int x = 10; double x = 5.5;//編譯失敗,變數重複定義}1.7
資料類型轉換
不同類型的變數是否可以在一起運算呢?答案是可以的,但要先進行類型轉換再運算。下面我們來學習一下類型轉換
其實,我們所學習的資料,它的表示方式是可以靈活多變的,比如把小數轉換成整數的操作
轉換的過程中,資料遵循一個原則:
範圍小的資料類型值(如byte),可以直接轉換為範圍大的資料類型值(如int);
範圍大的資料類型值(如int),不可以直接轉換為範圍小的資料類型值(如byte)
那麼,大家還記得每種類型表示資料的範圍嗎?忘記了不要緊,我來告訴大家,將各種資料類型按照資料範圍從小到大依次列出:
byte -> short -> int -> long -> float -> double
關於資料類型轉換有兩種方式,我們來學習一下:
l 自動類型轉換
表示範圍小的資料類型轉換成範圍大的資料類型,這種方式稱為自動類型轉換
自動類型轉換格式:
範圍大的資料類型 變數 = 範圍小的資料類型值;
如:
double d = 1000; 或 int i = 100; double d2 = i;
l 強制類型轉換
表示範圍大的資料類型轉換成範圍小的資料類型,這種方式稱為強制類型轉換
強制類型轉換格式:
範圍小的資料類型 變數 = (範圍小的資料類型) 範圍大的資料類型值;
如:
int i = (int)6.718; //i的值為6或double d = 3.14;int i2 = (int)d; //i2的值為3
Java基礎文法(第一章變數)