java基礎總結 03

2021-07-15 04:01:40 字數 4868 閱讀 1376

算術運算子

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 ...