算術運算子
a:+,-,*,/,%,++,--
b:+的用法
a:加法
b:正號
c:字串連線符
c:/和%的區別
資料做除法操作的時候,/取得是商,%取得是餘數
d:++和--的用法
a:他們的作用是自增或者自減
b:使用
**單獨使用
放在運算元據的前面和後面效果一樣。
a++或者++a效果一樣。
**參與操作使用
放在運算元的前面:先自增或者自減,再參與操作
int a = 10;
int b = ++a;
放在運算元的後面:先參與操作,再自增或者自減
int a = 10;
int b = a++;
賦值運算子a:=,+=,-=,*=,/=,%=等
b:=叫做賦值運算子,也是最基本的賦值運算子
int x = 10; 把10賦值給int型別的變數x。
c:擴充套件的賦值運算子的特點
隱含了自動強制轉換。
面試題:
short s = 1;
s = s + 1;
short s = 1;
s += 1;
請問上面的**哪個有問題?
比較運算子a:==,!=,>,>=,<,<=
b:無論運算子兩端簡單還是複雜最終結果是boolean型別。
c:千萬不要把==寫成了=
邏輯運算子a:&,|,^,!,&&,||
b:邏輯運算子用於連線boolean型別的式子
c:結論
&:有false則false
|:有true則true
^:相同則false,不同則true。
情侶關係。
!:非true則false,非false則true
&&:結果和&是一樣的,只不過有短路效果。左邊是false,右邊不執行。
||:結果和|是一樣的,只不過有短路效果。左邊是true,右邊不執行。
(5)位運算子(了解)a:^的特殊用法
乙個資料針對另乙個資料位異或兩次,該數不變
b:面試題
a:請實現兩個變數的交換
**採用第三方變數
**用位異或運算子
左邊a,b,a
右邊a^b
b:請用最有效率的方式計算出2乘以8的結果
2<<3
三元運算子a:格式
比較表示式?表示式1:表示式2;
b:執行流程:
首先計算比較表示式的值,看是true還是false。
如果是true,表示式1就是結果。
如果是false,表示式2就是結果。
c:案例:
a:比較兩個資料是否相等
b:獲取兩個資料中的最大值
c:獲取三個資料中的最大值
順序結構(程式中最簡單最基本的流程控制)
選擇結構
迴圈結構
(1)三種格式
a:格式1
if(比較表示式)
執行流程:
判斷比較表示式的值,看是true還是false
如果是true,就執行語句體
如果是false,就不執行語句體
b:格式2
if(比較表示式) else
執行流程:
判斷比較表示式的值,看是true還是false
如果是true,就執行語句體1
如果是false,就執行語句體2
c:格式3
if(比較表示式1) else if(比較表示式2)
...else
執行流程:
判斷比較表示式1的值,看是true還是false
如果是true,就執行語句體1
如果是false,就繼續判斷比較表示式2的值,看是true還是false
如果是true,就執行語句體2
如果是false,就繼續判斷比較表示式3的值,看是true還是false
...如果都不滿足,就執行語句體n+1
(2)注意事項
a:比較表示式無論簡單還是複雜,結果是boolean型別
b:if語句控制的語句體如果是一條語句,是可以省略大括號的;如果是多條,不能省略。
建議:永遠不要省略。
c:一般來說,有左大括號,就沒有分號,有分號,就沒有左大括號。
d:else後面如果沒有if,是不會出現比較表示式的。
e:三種if語句其實都是乙個語句,只要有乙個執行,其他的就不再執行。
(3)三元運算子和if語句第二種格式的關係
所有的三元運算子能夠實現的,if語句的第二種格式都能實現。
反之不成立。
如果if語句第二種格式控制的語句體是輸出語句,就不可以。
因為三元運算子是乙個運算子,必須要有乙個結果返回,不能是乙個輸出語句。
(1)格式:
switch(表示式)
格式解釋說明:
switch:說明這是switch語句。
表示式:可以是byte,short,int,char
jdk5以後可以是列舉
jdk7以後可以是字串
case:後面的值就是要和表示式進行比較的值
break:表示程式到這裡中斷,跳出switch語句
default:如果所有的情況都不匹配,就執行這裡,相當於if語句中的else
(2)面試題
switch語句的表示式可以是byte嗎?可以是long嗎?可以是string嗎?
可以,不可以,jdk7以後可以
(3)執行流程:
a:首先計算表示式的值
b:和每乙個case進行匹配,如果有就執行對應的語句體,看到break就結束。
c:如果沒有匹配,就執行default的語句體n+1。
(4)注意事項:
a:case後面只能是常量,不能是變數,而且,多個case後面的值不能出現相同的
b:default可以省略嗎?
可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
特殊情況:
case就可以把值固定。
a,b,c,d
c:break可以省略嗎?
可以省略,但是結果可能不是我們想要的。
會出現乙個現象:case穿透。
最終我們建議不要省略
d:default一定要在最後嗎?
不是,可以在任意位置。但是建議在最後。
e:switch語句的結束條件
a:遇到break就結束了
b:執行到末尾就結束了
(5)if語句和switch語句各自的場景
a:if
針對boolean型別的判斷
針對乙個範圍的判斷
針對幾個常量的判斷
b:switch
針對幾個常量的判斷
(1)有三種:for,while,do...while
(2)for迴圈語句
a:格式
for(初始化語句;判斷條件語句;控制條件語句)
執行流程:
a:執行初始化語句
b:執行判斷條件語句
如果這裡是true,就繼續
如果這裡是false,迴圈就結束
c:執行迴圈體語句
d:執行控制條件語句
e:回到b
b:注意事項
a:判斷條件語句無論簡單還是複雜,結果是boolean型別
b:迴圈體語句如果是一條,可以省略大括號,但是不建議
(3)while迴圈
a:基本格式
while(判斷條件語句)
擴充套件格式:
初始化語句;
while(判斷條件語句)
通過檢視這個格式,我們就知道while迴圈可以和for迴圈等價轉換。
b:while的練習
把for語句的練習用while改進
c:for和while的區別
a:使用上的區別
for語句的那個控制條件變數,在迴圈結束後不能在使用了。
而while的可以繼續使用。
b:理解上的區別
for適合於乙個範圍的判斷
while適合次數不明確的
舉例:吃葡萄
(4)do...while迴圈
a:基本格式
do while(判斷條件語句);
擴充套件格式:
初始化語句;
do while(判斷條件語句);
通過檢視格式,我們就可以看出其實三種迴圈的格式可以是統一的。
b:三種迴圈的區別
a:do...while迴圈至少執行一次迴圈體
b:for和while必須先判斷條件是否是true,然後後才能決定是否執行迴圈體
(5)迴圈使用的注意事項(死迴圈)
a:一定要注意修改控制條件,否則容易出現死迴圈。
b:最簡單的死迴圈格式
a:while(true)
b:for(;;){}
(1)break:中斷的意思
a:用在迴圈和switch語句中,離開此應用場景無意義。
b:作用
a:跳出單層迴圈
b:跳出多層迴圈,需要標籤語句的配合
(2)continue:繼續
a:用在迴圈中,離開此應用場景無意義。
b:作用
a:跳出單層迴圈的一次,可以繼續下一次
(3)return:返回
a:用於結束方法的,後面還會在繼續講解和使用。
b:一旦遇到return,程式就不會在繼續往後執行。
java基礎 03 泛型
一 泛型 generics 1.所謂泛型 就是變數型別的引數化。類別定義時的邏輯完全一樣,只是裡面成員變數的型別不同 如果需要多個相似的類,需要定義多個檔案,不同的只是變數的類別,而邏輯是完全一樣的 如果使用泛型,只要 在編譯時沒有出現警告,就不會遇到執行時classcastexception 型別...
Java基礎 03異常Exception
編譯 checked 異常 指的是,在編譯的時候,jvm就檢查 的正確性,從而丟擲編譯時就已能發現的異常 執行 unchecked 異常 指的是,在執行的過程中有可能丟擲的異常,我們自定義異常時都是繼承runtimeexception 都是繼承runtimeexception的。之所以自定義業務異常...
day03 Java語言基礎
b 案例演示 邏輯運算子的基本用法 注意事項 c 結論 邏輯與 有false則false。邏輯或 有true則true。邏輯異或 相同為false,不同為true。邏輯非 非false則true,非true則false。b 同理 和 的區別?學生自學 c 開發中常用誰?b 案例演示 b 面試題 b ...