您現在的位置是:首頁 > 動作武俠首頁動作武俠

java 面試複習回顧1

  • 由 剪輯影片精彩片段 發表于 動作武俠
  • 2021-12-28
簡介equals(y)==true) 他們的hashCode 值是否相等相等 應為java規定如果兩個值的equals 方法返回true 那麼HashCode 一定相同equals 比較的是通常認為封裝是把資料和操作資料的方法繫結起來和物件的值

異常是一種物件正確嗎

java 面試複習回顧1

Java 面向物件

面向物件都有那些特性以及你對這些特性的理解

繼承:繼承是已有類被稱為子類,繼承變化中的軟體系統有一定的延續性,同時繼承也是程式中可變因素重要手段

封裝:

通常認為封裝是把資料和操作資料的方法繫結起來

,對資料的訪問只能透過已定義的介面。面向物件的本質就是將現實世界描繪成一系列完全自治、封閉的物件。我們在類中編寫的方法就是對實現細節的一種封裝;我們編寫一個類就是對資料和資料操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的程式設計介面

多型: 簡單的說就是用同樣的物件引用呼叫同樣的方法但是做了不同的事情。多型性分為編譯時的多型性和執行時的多型性。如果將物件的方法視為物件向外界提供的服務,那麼執行時的多型性可以解釋為:當 A 系統訪問 B 系統提供的服務時,B 系統有多種提供服務的方式, 但一切對 A 系統來說都是透明的。方法過載(overload)實現的是編譯時的多型性(也稱為前繫結),而方法重寫(override)實現的是執行時的多型性(也稱為後繫結)。執行時的多型是面向物件最精髓的東西,要實現多型需要做兩件事:1。 方法重寫(子類繼承父類並重寫父類中已有的或抽象的方法);2。 物件造型(用父型別引用引用子型別物件,這樣同樣的引用呼叫同樣的方法就會根據子類物件的不同而表現出不同的行為)。

抽象:抽象是將一類物件的共同特性總結出來構照類的過程,包括資料抽象兩方面抽象只關注物件有哪些屬性和行為,不關注這些行為細節是什麼!

Java中有沒有goto語句?

goto是Java 中的保留字,在目前版本的Java中沒有使用 gotohe const 是兩個無法使用的關鍵字,因此被稱為保留字

&和&&的區別

按位與

邏輯與

&的運算子有兩種用法

&& 運算子是短路與運算, 如果&& 左邊的表示式值為false,右邊的表示式會直接短路掉,不會進行運算!例如在驗證登入判斷使用者名稱是否為空的時候判斷使用者是否為空而且不是空字串應當寫完 username !=null && username。equals(“”) 二者的順序不能交換,更不能用&運算子,因為第一個條件如果不成立,根本不能進行字串的 equals 比較,否則會產生 NullPointerException 異常。注意:邏輯或運算子(|) 和短路或運算子(||)的差別也是如此。

在Java 中如何跳出當前的多重巢狀迴圈

在最外層加一個標記A然後用break A 可以跳出多重迴圈(儘量直接使用break 和commit 這樣會使程式碼閱讀性變低)

xunhuan:while(true){//給迴圈一個識別符號,break 的時候,直接跳出迴圈。switch(a){case1:case2:case3:case4:System。out。println(“輸入成功!”);break xunhuan;default:System。out。println(“輸入錯誤,請重新輸入:”); a = in。nextInt();break;}}System。out。println(“執行購物結算”);}}

兩個物件相同(x。equals(y)==true) 他們的hashCode 值是否相等

相等 應為java規定如果兩個值的equals 方法返回true 那麼HashCode 一定相同

equals 比較的是

通常認為封裝是把資料和操作資料的方法繫結起來

和物件的值的Hascode 同時相等 才返回true

與== 相比 == 比較的是值的話 是比較數值是否相等 == 比較的是物件的話 比較的是物件的記憶體地址

是否可以繼承String

String 是final 的 不可以被繼承,不可以修改

過載和重寫的區別

方法過載和重寫都是多型的一種體現,過載是編譯器多型,重寫是執行時多型

過載和重寫的規則不一樣

過載 方法名相同形參列表可以不同,返回值可以不同,修飾符也可以不同,重寫引數列表必須和被重寫的引數完全一樣,返回值和重寫的方法也必須一樣 重寫的方法修飾符不能低於被重寫的方法的修飾符

char 的變數能不能儲存一箇中文漢字

char 型別可以儲存一箇中文漢字,char 在java中佔用2個位元組 一箇中文漢字也是佔用2個位元組

抽象類和介面有什麼區別

抽象類

抽象類可以有抽象方法和具體方法

抽象類可以定義構照器

介面中的成員都是public 的

抽象類可以定義成員變數

有抽象方法的類必須宣告抽象類,抽象類不一定要有抽象方法

抽象類可以包含靜態方法

介面

介面不能定義的構照器

方法全部都是抽象方法

抽象類的成員可以是private 預設 protected public

介面不能有經驗方法

一個類可以實現多個介面

相同點

不能例項化

可以將抽象類和介面型別作為引用型別

一個類繼承了某個抽象類或者實現某個介面都需要對其中抽象方法全部進行實現,否則該類不必宣告為抽象類

== 和equals 的區別

== 和equals 一個是運算子,一個是方法

== 如果比較的是基本資料型別 則比較的值物件是否相等, 如果比較的是引用類型別的話 比較的是物件的記憶體引用地址是否相同

equals 比較的兩個物件的內容是否相等

equals 不能比較基本資料型別

break 和 continue 的區別

break 和continue 都是跳出迴圈

continue 跳出了本次迴圈執行下一次迴圈 break 是結束迴圈,跳出迴圈體執行迴圈後的語句

String s=”hello” s=s+”word”; 這兩行程式碼後,原始的String物件中的內容改變了沒

沒有改變 因為String 是被設計成不變的類 原來的S =”Hello” 但是對 s+”hello” 後s 變成 “helloword 但是s 指定的是另一個另一個String 物件了 “ 但是原來的String 在堆物件中 沒有改變!

Java 中實現多型的機制是什麼

靠的是父類或者介面的定義的引用變數可以指向子類或者其子類具體的例項物件

比較物件的記憶體地 址

java 異常分幾種

編譯時異常

執行時異常

erro 和exeption 的區別

Erro 和exeption 都是Throwable 類

Erro 是錯誤 一般與JVM相關的問題 是不可以處理的異常

Exception類 表示是程式可以處理的異常,可以捕獲處理,可以是程式恢復執行!

Execption 分為執行時異常和編譯時異常 編譯時異常 必須提前處理 不能通不過編譯 執行時異常要處程式不會處理 出現這類異常,程式會終止。而受檢查的異常,要麼用try。。。catch 捕獲,要麼用throws 字句宣告丟擲,交給它的父類處理,否則編譯不會透過

請說出最常見的5個RuntimeExcption

空指標異常:java。lang。NullPointerException

java。lang。ClassNotFoundException 指定的類找不到;出現原因:類的名稱和路徑載入錯誤

java。lang。NumberFormatException 字串轉換為數字異常

java。lang。IndexOutOfBoundsException 陣列角標越界異常

ava。lang。ClassCastException 資料型別轉換異常

Throw 和throws 的區別

throw

throws

throws 語句用在方法聲明後面,表示丟擲異常 由方法的呼叫來進行異常處理

throws 表示出現異常的一種可能性,並不一定會發生這種異常

throws 主要是宣告這個方法會丟擲某種型別的異常,讓它的使用者要知道需要捕獲的異常的型別

throw 語句用在方法體內,表示丟擲異常

throw 是具體向外丟擲異常的動作,所以它丟擲的是一個異常例項,執行

throw 一定是丟擲了某種異常

final finally finalize 的區別

final 用於宣告屬性 方法 類 表示屬性不可變,方法不可以覆蓋,類不可以繼承

finally :是異常處理的一個階段 表示不管如何必定執行

finalize :Object 類的一個方法,在垃圾回收器執行的時候會呼叫被回收物件的此方法

Java 異常處理

陣列有沒有length() 方法,String 有沒有length() 方法

陣列沒有length 陣列是有length 屬性 String 是有length 的方法

陣列 length 屬性是獲取 資料的中元素個數 String 的length() 是或者String的字元長度

String StringBuilder StringBuffer 的區別

String 是隻讀字串 是final 修飾的 是不可改變的

常用API

StringBuffer/StringBuilder 他們的方法都一樣 但是Stringbuffer 是效能底下 執行緒安全 StringBuilder 是執行緒安全的!

StringBuffer/StringBuilder 表示的字串物件可以直接進行修改

java 的基本資料型別和佔幾個位元組

java 面試複習回顧1

java 面試複習回顧1

字元型

java 面試複習回顧1

布林型

java 面試複習回顧1

String 是基本資料型別嗎

String 是引用型別,底層char 陣列實現

Short S1=1; S1=S1+1;正確嗎

s1=1; s1 是short 型別 1 是int 型別 是 short 是可以強制轉換成int型別

s1=s1+1; s1是short 型 s1+1 強制轉換為int 型 所以變成 char=int 把int 賦值給char 是不可以的 強制轉換 所以是錯的

int 和Integer 有什麼區別

int 是基本資料型別

Integer 是引用資料型別 是int 的包裝類

int Integer 可以自動裝箱和自動包箱

字串如何轉基本資料型別

呼叫基本資料型別對應的包裝類中的方法 parseXXX(String)或 valueOf(String)即可返回相應基本型別

基本資料型別如何轉字串

一種方法是將基本資料型別與空字串(“”)連線(+)即可獲得其所對應的字串;另一種方法是呼叫 String 類中的 valueOf()方法返回相應字串

Top