教程揭秘 | 動力節(jié)點內部Java零基礎教學文檔第一篇:JavaSE(2)
接上期后續(xù)
本期繼續(xù)分享尚未結束的JavaSE章節(jié)
JavaSE屬于初入門階段,內容很多~
但很基礎,
大家需保持耐心,慢慢的學~
爭取你們學習的速度!
跟上我更新的速度哦~

今日新篇章
02-數(shù)據(jù)類型和運算符
【主要內容】
1.?進制及其轉換
2.?關鍵字和標識符
3.?變量和常量
4.?八大基本數(shù)據(jù)類型
5.?Scanner鍵盤輸入
6.?基本數(shù)據(jù)類型的類型轉換
7.?算術運算符
8.?賦值運算符
9.?擴展賦值運算符
10.?比較運算符
11.?邏輯運算符
12.?三目運算符
13.?運算符的優(yōu)先級別
【學習目標】

1.?進制及其轉換【了解】
1.1?文件存儲單位
任何數(shù)據(jù)在計算機中都是以二進制的形式存在的,二進制早期由電信號開關演變而來。
電腦中的信號都是以二進制數(shù)的形式給出的,二進制數(shù)是由0和1組成,電子元件的“開”、“關”分別表示“1”和“0”,一組電子元件的“開”和“關”狀態(tài)就表示相應的二進制數(shù)。
一個電信號或者一個二進制位統(tǒng)稱為Bit位,8個Bit位為一組組成一個字節(jié)Byte。

【思考一】一個bit位和字節(jié)表示的范圍?
一個bit位表示的數(shù)的范圍:0和1
一個byte表示的數(shù)的范圍:256個數(shù)
無符號數(shù):0-255(28-1) ?????256個數(shù)
有符號數(shù):-128(-27)-- 127(27-1) ?還是256個數(shù)
【思考二】為什么文件大小單位以1024為進制?
1KB = 1024Byte;
1MB = 1024KB;
1GB = 1024MB;
二進制數(shù)據(jù)是用0和1兩個數(shù)碼來表示的數(shù)。而2的10次恰好等于1024 ,所以為了方便就用了1024進制。
1.2?常見的進制介紹
n?2進制(計算機能夠識別的),逢二進一
????用0和1來表示
例如:整數(shù)5轉化為二進制:0101
n?8進制,逢八進一
用0-7來表示
注意:八進制以0開頭
例如:整數(shù)10轉化為8進制:012
二進制三個bite位為一組,組成就是8進制。
n?10進制(人類最常見的進制),逢十進一
用0-9來表示
n?16進制,逢十六進一
用0-9和ABCDEF來表示
????注意:16進制以0x開頭
例如:整數(shù)31轉化為16進制:0x1F
二進制四個bite位為一組,組成就是16進制。
八進制和十六進制由來,為了更好的表示二進制(縮短二進制長度) 。
1.3?整數(shù)的存儲和運算
1.3.1?整數(shù)的存儲
正數(shù)直接把十進制的值轉化為二進制,然后存儲在內存中。
【示例】
正數(shù)6在內存中的存儲形式為:0000-0000 0000-0000 0000-0000 0000-0110
注意:正數(shù)的最高位肯定是0。
1.3.2?負數(shù)的存儲
先把負數(shù)轉化為原碼,然后再轉化為反碼,最后在內存中以補碼的形式存儲。
原碼:按照絕對值大小轉換成的二進制數(shù),稱為原碼
反碼:將二進制數(shù)按位取反,所得的新二進制數(shù)稱為原二進制數(shù)的反碼。
補碼:反碼加1稱為補碼。
【示例】
負數(shù)-6在內存中的存儲步驟:
原碼:0000-0000 0000-0000 0000-0000 0000-0110
反碼:1111-1111 1111-1111 1111-1111 1111-1001
補碼:1111-1111 1111-1111 1111-1111 1111-1010
注意:負數(shù)的最高位肯定是1。
2.?常量和變量
2.1?關鍵字&保留字
java關鍵字是電腦語言里事先定義的,有特別意義的標識符,有時又叫保留字,還有特別意義的變量。java的關鍵字對java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù)類型,或者表示程序的結構等。

注意:這些關鍵字不要刻意去背,后面會慢慢介紹每個關鍵字的用法。
2.2?標識符
標識符是用于給java程序中的變量、類、方法、包等命名的符號。
標識符需要遵守一定的規(guī)則:
1)標識符必須以字母(A-Z和a-z)、數(shù)字(0-9)、下劃線“_”、美元符號“$”組成。 ?
2)標識符不能以數(shù)字開頭,其它部分可以是字母、下劃線、美元符和數(shù)字的任意組合。
3)Java 標識符大小寫敏感,且長度無限制。
4)標識符不可以是Java的關鍵字。
標識符的使用規(guī)范:
表示類名的標識符應首字母大寫,并且采用駝峰式命名法則。
例如:Person, GoodStudent
表示方法和變量的標識符應首字母小寫,并且采用駝峰式命名法則。
例如:int userName; ?public void eatFood(){}
注意:Java不采用通常語言使用的ASCII字符集,而是采用unicode這樣的標準的國際字符集。因此,這里的字母的含義不僅僅是英文,還包括漢字等等。但是不建議大家使用漢字來定義標識符!
2.3?變量(Variable)
2.3.1?變量的本質
變量的本質,就是代表一個“可操作的存儲空間”,空間位置是確定的,但是里面放置什么值不確定。 我們可以通過變量名來訪問“對應的存儲空間”,從而操縱這個“存儲空間”存儲的值。
Java是一種強類型語言,每個變量都必須聲明其數(shù)據(jù)類型。變量的數(shù)據(jù)類型決定了變量占據(jù)存儲空間的大小。
內存中變量好比旅館的房間,內存中常量好比住旅館房間的人。
2.3.2?變量的聲明
變量聲明語法:數(shù)據(jù)類型 變量名;?
變量聲明本質:就是在內存中開辟一塊內存空間,用于存放指定數(shù)據(jù)類型的數(shù)據(jù)。
n?聲明一個變量
public?static?void?main(String[] args) {
// 聲明一個int類型的變量
int?age;
// 聲明一個float類型的變量
double?price;
}
n?同時聲明多個變量
語法:數(shù)據(jù)類型 變量名1, 變量名2, 變量名3;
public?static?void?main(String[] args) {
// 聲明多個int類型的變量
int?num1, num2, num3;
}
注意:同時聲明多個變量,那么變量的類型就必須是同一類型。
2.3.3?變量的賦值
變量的賦值本質:通過變量名找到指定的內存空間,然后把數(shù)據(jù)存放到該內存空間中。
n?給變量賦值
public?static?void?main(String[] args) {
// 聲明一個int類型的變量
int?age; // 在內容中開辟一塊空間
// 給age變量賦值
age?= 18; // 通過age變量賦值, 把等號右邊的值賦值給等號左邊的變量
}
注意:賦值的數(shù)據(jù)類型必須和聲明變量類型一致。
n?聲明和賦值同時進行
語法: 數(shù)據(jù)類型 變量名 = 數(shù)據(jù)值;
public?static?void?main(String[] args) {
// 聲明并賦值一個int類型的變量
int?age?= 18; // 把等號右邊的值賦值給等號左邊的變量
}
n?同時聲明和賦值多個變量
語法:數(shù)據(jù)類型 變量名1 = 數(shù)據(jù)值1,變量名2 = 數(shù)據(jù)值2,變量名3 = 數(shù)據(jù)值3;
public?static?void?main(String[] args) {
// 同時聲明和賦值多個變量
int?num1?= 10, num2?= 20, num3?= 30; // 不建議使用,可讀性差
}
2.3.4?變量總結提升
變量的特點:在于“變”字,聲明變量所開辟的內存空間可以多次賦值。
常見問題總結:
1.?在方法中聲明的變量,必須是賦值之后才能使用。
2.?先聲明后賦值,沒用聲明的變量名什么都不是。
3.?變量名必須是合法的標識符,采用首字母小寫的駝峰式命名。
4.?賦值的數(shù)據(jù)類型必須和聲明變量類型一致。
5.?在同一個方法中,不能聲明多個同名的變量。
2.4?常量(Constant)
常量通常指的是一個固定的值,例如:1、2.1、‘a’、true、false、“helloWorld”、“”、null等。
當然在Java語言中,我們也可以利用關鍵字final來定義一個常量。
語法:final 數(shù)據(jù)類型 常量名 = 數(shù)據(jù)值;
常量的特點:常量一旦被賦值后不能再更改其值。
final?float?PI?= 3.1415926f;
【注意事項】
1、?常量只能被賦值一次,賦值完畢后就不能再更改值。
2、?常量名一般由大寫字母組成,多個單詞可以用下劃線分割,例如:final int MAX_VALUE = 100;
3.?基本數(shù)據(jù)類型
java是一種強類型語言,每個變量都必須聲明其類型。
java的數(shù)據(jù)類型分為兩大類:基本類型(primitive type)和引用類型(reference type)。

3.1?整數(shù)型
整數(shù)型常量:
u?十進制整數(shù),例如:123,-100等
u?八進制整數(shù),要求以0開頭,例如:015
u?十六進制整數(shù),要求以0x或0X開頭,例如:0x1A,0x15
數(shù)據(jù)類型占用存儲空間越大,那么表數(shù)的范圍也就越大。在實際開發(fā)中,我們應該根據(jù)實際情況選用合適的的數(shù)值類型,避免出現(xiàn)超出表數(shù)范圍的情況(一般情況下我們選用int類型)。

【注意事項】
1、?注意數(shù)據(jù)類型的表數(shù)范圍,避免出現(xiàn)超出表數(shù)范圍精度丟失的情況。
2、整型常量默認為int類型,聲明long型常量可以加“l(fā)”或“L”,建議使用“L”。
3.2?浮點型
小數(shù)類型在Java中稱為浮點類型。
浮點型常量:
u?十進制數(shù)形式,例如:3.14 或 123.45
u?科學計數(shù)法形式,例如:314E2代表31400.0或314E-2代表3.14
浮點類型分為float類型和double類型:
u?float類型被稱作單精度類型,尾數(shù)可以精確到7位有效數(shù)字,在很多情況下,float類型的精度很難滿足需求。
u?double類型被稱作雙精度類型,數(shù)值精度是float類型的兩倍,絕大部分應用程序都采用double類型,浮點型常量默認為double類型

【注意事項】
1、?浮點型常量默認為double類型。
2、?浮點型常量賦值給float類型,需要在常量后面添加“f”或 “F”。
3、?避免直接比較兩個浮點數(shù)的大小,這樣比較可能會出現(xiàn)問題。
【擴展知識】
整數(shù)和浮點數(shù)在內存中的存儲方式不一樣,感興趣的同學可以自行網(wǎng)上學習。
3.3?布爾型
boolean類型有兩個值:true和false。true代表真,false代表假。
boolean類型用來判斷邏輯條件,常用于程序流程控制。
【擴展知識】
在java規(guī)范中,沒有明確指出boolean類型所占用的空間大小,深度解讀可查閱這篇博文。
3.4?字符型
3.4.1?字符型
字符型在內存中占有2個字節(jié),在Java中使用單引號包裹起來的一個字符稱之為字符常量。
例如‘A’是一個字符,它與“A”是不同的,“A”表示含有一個字符的字符串。
【示例】字符型使用
public?static?void?main(String[] args) {
char?c1?= 'a'; ?// 正確,聲明并賦值一個'a'字符
char?c2?= '安'; // 正確,聲明并賦值一個'安'字符
char?c3?= '8'; ?// 正確,聲明并賦值一個'8'字符
char?c4?= '88'; // 錯誤,單引號只能包裹一個字符
char?c5 = ''; ??// 錯誤,單引號包裹的不能一個字符都沒有
char?c6 = "安"; // 錯誤,字符只能用單引號包裹,雙引號包裹的為字符串
}
補充:char類型表示的是Unicode編碼表中的字符,所以可以表示一個中文字符。
??char類型和int類型的聯(lián)系和區(qū)別
char類型常量在內存中存儲的就是Unicode編碼值,例如:'A'— 65, '1'— 49。
在一定范圍內,char類型和int類型是可以通用的。
【示例】char類型和int類型
public?static?void?main(String[] args) {
char?c1?= 'A'; // Unicode對應的數(shù)值為65
System.out.println(c1?+ 1); ?????????// 輸出:66
char?c2?= 97; ?// Unicode對應的字符為'a'
System.out.println((char)(c2?- 32)); // 輸出:'A'
}
char類型和int類型區(qū)別:
1、?分配的內存空間不同,int類型占4個字節(jié),char類型占用2個字節(jié)。
2、?數(shù)值表示的范圍不同,int類型標識的范圍比char類型更大,并且int類型還可以表示負數(shù)。
3.4.2?字符集
我們知道計算機只能識別0或1,在計算機中儲存的信息都是用二進制數(shù)表示的,數(shù)值型我們知道該如何轉化為2進制然后存儲在內存,那么字符型在內存中又是怎么來存儲的呢?
本質上字符是沒法直接轉化為二進制的,我們在屏幕上看到的英文、漢字等字符都是二進制數(shù)轉換之后的結果。
通俗來說,按照何種規(guī)則將字符存儲在計算機中,我們稱為"編碼"。例如字符'A'我們可以用十進制65來表示,然后把十進制65轉化為二進制后存儲在內存中;
反之,將存儲在計算機中的二進制數(shù)解析顯示出來,稱為"解碼"。例如我們從內存中取值的時候,如果取出來的值為十進制65,那么就代表了我們取出來的數(shù)據(jù)為字符‘A’。
于是乎人類按照以上的“編碼”和“解碼”規(guī)則就創(chuàng)建出了各個語言與之對應的編碼表。
常見的字符編碼表:
l?ASCII:美國信息交換標準代碼,是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代的英語和西歐語言的編碼表。
l?GBK:全稱《漢字內碼擴展規(guī)范》,字庫是用來表示中文用的編碼。
l?Unicode:又稱為萬國碼、統(tǒng)一碼,是為了解決傳統(tǒng)的編碼方案的局限性而產生的,他為每種語言中的每個字符設定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。
Unicode編碼,占2個字節(jié),可允許有65536個字符,一個中文字符在內存中占用2個字節(jié)。
3.4.3?轉義字符
Java 語言中還允許使用轉義字符來將其后的字符轉變?yōu)槠渌暮x。

4.?Scanner鍵盤輸入
java.util.Scanner是JDK1.5的新特征,主要功能是獲取控制臺輸入的數(shù)據(jù)。
4.1?導入Scanner包
import?java.util.Scanner;
在源文件的頂部導入java.util.Scanner;包,那么我們在該源文件中就可以使用Scanner類了。
4.2?初始化Scanner對象
Scanner input?= new?Scanner(System.in);
4.3?獲取輸入的數(shù)據(jù)
等待用戶輸入一個文本行并且回車,該方法得到一個對應類型的數(shù)據(jù)。
String str?= input.next(); ?// 獲取控制臺輸入的字符串
通過Scanner類的next()方法獲取用戶在控制臺輸入的字符串,通過nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()獲取用戶在控制臺輸入的基本數(shù)據(jù)類型。
【注意事項】
1.?執(zhí)行獲取數(shù)據(jù)的方法時會造成線程堵塞,等待回車確認后才會執(zhí)行后續(xù)的代碼。
2.?Scanner提供的方法中沒有獲取字符的方法,也就是沒有nextChar()方法。
【隨堂練習】
1、?通過鍵盤錄入獲取圓的半徑,然后計算出該圓的周長和面積。
5.?基本數(shù)據(jù)類型轉換
在賦值運算或算術運算時,要求數(shù)據(jù)類型相同,否則就要進行類型轉換。
轉換的方式:
l?自動類型轉換(隱式)
l?強制類型轉換(顯示)
基本數(shù)據(jù)類型的轉換主要包含:byte、short、int、long、float、double和char,不包含boolean類型。
5.1?自動類型轉換
自動類型轉換(隱式類型轉換)指的是容量小的數(shù)據(jù)類型可以自動轉換為容量大的數(shù)據(jù)類型。
à??由低字節(jié)向高字節(jié)的轉換 ?byte->short-> char –>int->long->float->double
【賦值運算中的類型轉換案例】
public?static?void?main(String[] args) {
// 把int類型的值賦值給double數(shù)據(jù)類型(符合低字節(jié)向高字節(jié)轉換)
double?num?= 32; ?
//?把整數(shù)常量賦值給byte、 short和char類型變量(不符合低字節(jié)向高字節(jié)轉換)
byte?b?= 123;
short?s?= 123;
byte?by?= 1234; // 錯誤,整數(shù)常量不能操出其類型的表數(shù)范圍
}
把整數(shù)常量(int類型)賦值給byte、short和char類型變量,屬于自動類型轉換的特例,只要不超出其表數(shù)范圍即可。
算數(shù)運算中的類型自動轉換原則:
如果兩個操作數(shù)其中有一個是double類型,另一個操作就會轉換為double類型,結果為double類型。
否則,如果其中一個操作數(shù)是float類型,另一個將會轉換為float類型,結果為float類型。
否則,如果其中一個操作數(shù)是long類型,另一個會轉換為long類型,結果為long類型。
否則,兩個操作數(shù)都轉換為int類型,結果為int類型。
【算數(shù)運算中的類型轉換案例】
public?static?void?main(String[] args) {
int?num1?= 5; // int類型
double?num2?= 7.34; // double類型
// 此處的num1會被提升為double類型
double?sum?= num1?+ num2; //?num1和num2的和為double類型
}
【常見面試題】?
1、?byte b1 = 11; byte b2 = 12;byte sum = b1 + b2; 和int num1 = 100; int num2 = 300; int sum = num1 + num2;哪一個正確呢?
2、?請問說出100000L*100000*100000和100000*100000*100000的區(qū)別?
3、?int num1 = 90000; int num2 = 90000; int total = num1 * num2; 請問total的結果是多少?
5.2?強制類型轉換
強制類型轉換(顯示類型轉換),主要用于顯式的轉換一個數(shù)值的類型。在有可能丟失信息的情況下進行的轉換是通過造型來完成的,但可能造成精度降低或溢出。
語法格式:目標類型 變量 =(目標類型)源類型變量或常量
【示例】

使用強制類型轉換的時候,一定要明確需要強轉的數(shù)據(jù)。
6.?運算符(operator)
6.1?算數(shù)運算符
6.1.1?二元運算符
?二元運算符指的是需要兩個操作數(shù)才能完成運算的運算符,例如:+,-,*,/,%。
【注意事項】
1、?+號不但可以做加法運算,還可以表示正號和字符串連接符。
2、?兩個整數(shù)做除法(/)運算,結果只保留整數(shù)。
【隨堂練習】
1、獲取整數(shù)987的百位數(shù)、十位數(shù)和個位數(shù)。
6.1.2?一元運算符
只需要一個操作數(shù)的運算符稱為一元運算符,如++,--?等。
u?++ 自增運算符
如num++和++num,都等價于num = num + 1
num++和++num的區(qū)別:
++num 先自增,后參與運算
num++ 先參與運算,后自增
u?--自減運算符
如num--和--num,都等價于num = num - 1
num--和--num的區(qū)別
--num 先自減,后參加運算
num-- 先參與運算,后自減
【思考】
1、可以對常量進行遞增或遞減操作嗎?例如:5++或++5。
2、int num = 5; num = num++;請問代碼執(zhí)行后num的值為多少?
【隨堂練習】
1.?int a = 3, b = 4; 求a++ / 3 + --b * 2 - a-- % 6 + b++ * 3 - ++b的值。
6.2?賦值運算符
= ?把等號右邊的值賦值給左邊
【隨堂練習】
1、交換兩個變量的值(用兩種方式實現(xiàn))。
6.3?擴展賦值運算符
擴展賦值運算符:是算術運算符和賦值運算符結合。

【隨堂練習】
1、?獲取三個學生的成績,并計算三個學生成績的平均分。
【常見面試題】
1、?short num = 11; num = num + 1; 和short num = 11; num += 1;哪一個正確呢?
2、?int sum += 30; 請問這行語句語法是否正確???
6.4?比較運算符
比較運算符用來進行比較運算,比較運算符的運算結果是boolean類型。
>、 <、 >=、 <=、==、 !=
6.5?邏輯運算符
參與邏輯運算的數(shù)據(jù)類型必須為boolean類型,邏輯運算后的結果也為boolean類型。
6.5.1??與運算(&)
&運算特點:
true & true = true;
true & false = false;
false & true = false;
false & false = false;
&運算規(guī)律:
運算兩邊只要有一個為false,那么結果肯定為false
?只有運算兩邊都為true,那么結果才為true
6.5.2??或運算(|)
|運算特點:
true | true = true;
true | false = true;
false | true = true;
false | false = false;
|運算規(guī)律:
運算兩邊只要有一個true,那么結果肯定為true
?只有運算兩邊都為false,那么結果才為false
6.5.3??異或運算(^)
^運算特點:
true ^ true = false;
true ^ false = true;
false ^ true = true;
false ^ false = false;
^運算規(guī)律:
運算兩邊相同,那么結果肯定為false
?運算兩邊不同,那么結果肯定為true
6.5.4??非運算(!)
!運算特點:
!true = false;
!false = true;
6.5.5??短路與(&&)
&&和&的運算結果是一樣的,但是運算的過程有所不同
&:無論左邊的運算結果是什么,右邊都需要參與運算
&&:如果左邊運算結果為false,那么右邊就不需要參與運算了,直接返回結果false
?如果左邊運算結果為true,那么需要進行右邊的運算,并返回右邊運算的結果

6.5.6??短路或(||)
||和|的運算結果是一樣的,但是運算的過程有所不同
|:無論左邊的運算結果是什么,右邊都需要參與運算
||:如果左邊運算結果為true,那么右邊就不需要參與運算了,直接返回結果true
如果左邊運算結果為false,那么需要進行右邊的運算,并返回右邊運算的結果
邏輯與? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?說明
邏輯? ? ? ? ? ? ||(或)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 只要有一個為true,結果就為true
【隨堂練習】
1、?判斷一個數(shù)是否在4(包含)~6(不包含)之間;
2、判斷一個數(shù)是否在4(不包含)~6(包含)之外;
6.6?位運算符【了解】
位運算是直接對二進制進行的運算。
6.6.1??<<左移
左移n位,等于在源數(shù)據(jù)上乘以2的n次方。
例如:3 << 1 = 6
?????0000 0000 0000 0000 0000 0000 0000 0011
??0 ?000 0000 0000 0000 0000 0000 0000 00110 ??左移低位補0
例如:3 << 2 = 12
?????0000 0000 0000 0000 0000 0000 0000 0011
?00 ?00 0000 0000 0000 0000 0000 0000 001100
【使用技巧】 3*2可以使用 3<<1來實現(xiàn),這樣做的效率更高。
6.6.2??>>右移
右移n位,等于在源數(shù)據(jù)上除以2的n次方
例如:6 >> 1 = 3
?????0000 0000 0000 0000 0000 0000 0000 0110
?????00000 0000 0000 0000 0000 0000 0000 011 ?0 ??正數(shù)則在高位補0,負數(shù)則在高位補1
例如:6 >> 2 = 1
?0000 0000 0000 0000 0000 0000 0000 0110
?000000 0000 0000 0000 0000 0000 0000 01 ?10
【使用技巧】 3/2可以使用 3>>1來實現(xiàn),這樣做的效率更高。
6.6.3??>>>無符號右移
>>>和>>移動類似,但是無論值的正負,都在高位補0
6.6.4??&位運算
位都為1,結果才為1,否則結果為0
例如:7 & 3 = 3
??111
?&011
------
??011
6.6.5??|位運算
位只要有一個為1,那么結果就是1,否則就為0
例如:7 | 3 = 7
??111
?|011
------
??111 ?
6.6.6??^位運算
兩個操作數(shù)的位中,相同則結果為0,不同則結果為1
例如:7 ^ 3 = 4
??111
?^011
------
??100
【隨堂練習】
1、不用臨時變量就完成交換兩個變量的值。
6.6.7??~位運算
如果位為0,結果是1,如果位為1,結果是0
例如:~6 = -7
?0000 0000 0000 0000 0000 0000 0000 0110
取反 1111 1111 1111 1111 1111 1111 1111 1001
6.7?三目運算符
三目運算符又稱為三元運算。
語法格式:條件表達式? 表達式1 : 表達式2
如果條件表達式為true,則取表達式1的值,否則就取表達式2的值。
【隨堂練習】
1、獲取兩個數(shù)的最大值或最小值
6.8?運算符優(yōu)先級

大家不需要去刻意的記這些優(yōu)先級,表達式里面優(yōu)先使用小括號來組織!!

更多干貨我們下期再說!
記??!這只是開始~
