Java學習第二天變數、常量和運算子

weixin_34342992發表於2017-11-28

今天學習內容如下:

1、字面量和常量
2、引出變數
3、變數分類、作用域和使用規則
4、資料型別和分類
5、boolean型別
6、整數型別
7、小數型別
8、字元型別
9、最常用的引用型別
10、資料過大和溢位
11、基本型別和自動轉換
12、基本型別和強制轉換
13、表示式型別的自動提升
14、算術運算子
17、++、--
18、賦值運算子
19、比較運算子
20、三牧運算子
21、邏輯運算子
22、位運算子
23、移位操作
24、運算子的操作優先順序


1、字面量和常量
字面量常量比如:整數常量1,2,3,小數常量3.14,布林常量false,true等,字面量,就表示直接給出的一個值(可以是整數,小數,true,false等等),直接量。

2、引出變數
變數的定義:表示儲存空間,可用來存放某一型別的常量,沒有固定值,並可以重複使用,也可以用來儲存某種型別的未知資料。
變數的特點:
① 佔據著記憶體中的某一塊儲存區域;
② 該區域有自己的名稱(變數名)和型別(資料型別);
③ 可以被重複使用;
④ 該區域的資料可以在同一型別範圍內不斷變化;
不推薦:同時定義多個變數。

3、變數分類、作用域和使用規則
成員變數:直接定義在類裡的變數,又稱為全域性變數或欄位。
區域性變數:變數除了成員變數之外,其他就是區域性變數。根據定義的位置不同有3種表現形式:方法形參,方法內變數,程式碼塊變數。
變數作用域:
指變數的存在範圍,只有在這個範圍內,程式程式碼才能訪問它。當一個變數被定義時,它的作用域就確定了:
作用域是定義開始到定義所在的花括號結束;
變數使用規則:
① 變數必須先宣告,並且初始化後才能使用;
② 宣告變數必須有資料型別
③ 同一作用域內變數名不能重複定義
靜態方法中只能呼叫靜態變數

4、資料型別和分類
在Java中資料型別整體上分成兩大類:
(1):基本資料型別/原生資料型別,共8個:
數值型:
① 整數型別:byte,short,int,long,不同的整數型別在記憶體佔用的記憶體空間大小是不一樣的。 小數型別:float,double。
② 字元型:char,什麼是字元,字母/符號。
③ 布林型:boolean,表示對與錯。true,false。
(2):引用資料型別/物件資料型別:
①類/介面/陣列

5、boolean型別
boolean型別:通常用於邏輯運算和程式流程控制(條件選擇/迴圈)。
該型別的值只能是true 或 false,表示真或假。

6、整數型別
整數型別(byte-short-int-long):
byte、short、int、long型別:
整型常量的四種表示形式:
① 二進位制整數:0B或0b開頭(Java7的新特性),如:int a = 0B110;
② 八進位制整數:要求以0開頭,如 int a = 012;
③ 十進位制整數:如:int a = 17;
④ 十六進位制整數:要求0X或0x開頭,如int a = 0x12;
Java語言的整型常量預設是int型,宣告long型變數後加上‘l’或‘L,因小寫的l容易和數字1相混淆,建議使用大寫L。
預設情況下,一個整型的字面量預設是int型別。

7、小數型別
小數型別(float-double):
float、double型別:表示小數型別又稱為浮點型別,其中float表示單精度型別,double表示雙精度型別,但是二者都不能表示精確的小數。
Java的浮點型別常量有兩種表現形式:
①十進位制形式: 例如:3.14 ,168.0, .618
②科學計數法形式: 例如:3.14e2, 3.14E2, 1000E-2
科學計數法表示式返回的結果是double型別。

8、字元型別
字元型別(char):字元,字母和符號。
char型別:表示16位的無符號整數或者Unicode字元,Java對字元采用Unicode字元編碼。
Unicode收集了世界上所有語言文字中的符號,是一種跨平臺的編碼方式,Java的字元佔兩個位元組,可以表示一個漢字。
char常量有3種表示形式:
① 直接使用單個字元來指定字元常量,格式如'◆'、'A','7';
② 直接作為十進位制整數數值使用,但是資料範圍在[0,65535],格式如97,但是列印出來的值依然是ASCII碼錶對於的符號,如97列印出來是字元a。
③ 和2一樣,只不過表示的是16進位制的數值,格式如'\uX',X表示16進位制整數;如:97的16進位制是61。那麼表示為‘\u0061’列印出來也是a。所以有人說char本質上也是整型,也是有道理的。

9、最常用的引用型別
除了8種基本資料型別,其他所有型別都是引用資料型別,包括類、介面、陣列。引用資料型別預設初始值都是null。
String是一個類,表示字串(後面詳講),所謂字串,就是一串字元,也就是N個字元連線在一起(N可以表示0或多個),好比羊肉串。
字串都得使用 "" 括起來的,連線字串使用 “+”符號。
字串拼接:字串和任意資料型別相連線,結果都是字串型別。

10、資料過大和溢位
當要表示的資料超出資料型別的臨界範圍時,稱為溢位。溢位情況發生時程式並沒有做資料範圍檢查處理,此時會出現資料紊亂情況。
int最大值
int intMax = 2147483647;
分析資料發生紊亂的原因。


3276082-89a94c3dc283a915.png
圖片1.png

11、基本型別和自動轉換
在8大基本資料型別中,boolean不屬於數值型別,不參與轉換,轉換規則其實就是各自資料型別的空間大小。自動型別轉換,也稱為“隱式型別轉換:當把小資料範圍型別的數值或變數賦給另一個大資料範圍型別變數,系統可以完成自動型別轉型。boolean 型別是不可以轉換為其他資料型別。
一般的,byte,short,char不參與轉換操,
我們直接把byte,short,char直接付給int型別。


3276082-29ccac56091019b8.png
圖片1.png

12、基本型別和強制轉換
強制型別轉換,也稱為“顯示型別轉換”:
當把大範圍型別的數值或變數賦給另一個小範圍型別變數時,此時系統不能自動完成轉換,需要加上強制轉換符,但這樣的操作可能造成資料精度的降低或溢位,所以使用時要格外注意。

13、表示式型別的自動提升
當一個算術表示式中包含多個基本資料型別(boolean除外)的值時,整個算術表示式的資料型別將在資料運算時出現型別自動提升,其規則是:
所有的byte、short、char型別被自動提升到int型別;
整個表示式的最終結果型別被提升到表示式中型別最高的型別;
double d1 = 123 + 1.1F + 99L + 3.14;
System.out.println('a' + 1);//98
byte b = 22;
b = b + 11;//編譯出錯,此時結果型別應該是int

14、運算子
3276082-a46bbbea066e9c96.png
圖片2.png
3276082-81d7e5ba9a4b6a5a.png
圖片3.png
3276082-ce0b51a976551940.png
圖片4.png

3276082-83cdb9e2d626172c.png
圖片5.png

18、三牧運算子
判斷真假?true :false

19、邏輯運算子


3276082-32d0f68a3ca55d75.png
圖片6.png

&:表示並且,當運算元A和B都為true結果才為true,否則結果result 是false。
&&:和&結果相同,具有短路效果,如果左邊運算元A是false,result 一定為false,且不執行B的運算。
|:表示或者,A和B都為false結果result為false,只要有A或B是true,結果就是true。
||:和|結果相同,具有短路效果,如果左邊運算元A是true,result一定為true,且不執行B的運算。
^:判斷A和B是否不同,不同則為true,相同則為false。
!:取反,!true結果是false,!fasle結果是true。

20、位運算子
遵循規則:
&:參與運算的兩個數,若相應位數的值都為1,則該位結果值是1,否則是0。
|:參與運算的兩個數相應位中只要有一個1,結果就是1。
^:參與運算的兩個數相應位相同則結果為0,否則為1。
~ :表示把每個二進位制位的“1”換成“0”,把“0”換成“1”。

21、移位操作
① <<:將運算元的二進位制碼整體左移指定位數,左移之後的空使用“0”來補充。
② >>:將運算元的二進位制碼整體右移指定位數,右移之後的空使用“符號位”來補充:
若是正數使用“0”補充;
若是負數使用“1”補充;(操作負數:取反,求補,操作,取反,求補)
③ >>>:將運算元的二進位制碼整體右移指定位數,右移之後的空位使用“0”來補充。

22、運算子的操作優先順序


3276082-af3b6cf9e06c743b.png
圖片1.png

Editplus編輯javac和執行java的配置
下載jdk,再eidtplus裡面設定java、javac就好,選擇jdk裡面設定的
檔名要和類名一樣

3276082-43b0d3741b8e7e8f.png
圖片3.png
3276082-e1ca256d4ccffe23.png
圖片4.png
3276082-4a1a702404e9a9b2.png
圖片7.png

相關文章