搜尋
首頁JavaJava面試題多年開發經驗總結的Java面試問題-(一)

多年開發經驗總結的Java面試問題-(一)

一、基本資料型別和封裝類別有什麼區別

(更多面試題推薦:java面試題

原始型別是類,引用型別是物件。

原始型別大小比較用"==",引用型別大小比較用"equals"。

引用型別可以被序列化,原始型別不行。

在集合類別中只能使用引用類型,不能使用原始類型。

基本資料型別不用new,封裝類別需要new。

基本資料參數傳遞是以值傳遞,封裝類型是以位址傳遞的。

二、String、StringBuffer、StringBuilder三者之間的差異 

String是字串常數,StringBuffer、StringBuilder是字串變數。

String所建立的字元內容不可變(String底層char陣列是final的),StringBuffer、StringBuilder的字元內容是可加長的。

StringBuffer是線程安全的,StringBuilder線程不安全的,但是速度快(因為它不會為線程安全消耗效能)。

三、String為什麼不可變?

雖然String、StringBuffer和StringBuilder都是final類,它們產生的物件都是不可變的,而且它們內部也都是靠char數組實現的。

但是不同之處在於,String類別中定義的char陣列是final的,而StringBuffer和StringBuilder都是繼承自AbstractStringBuilder類,它們的內部實作都是靠這個父類別完成的,而這個父類別中定義的char數組只是一個普通是私有變量,可以用append追加。

(相關教學推薦:java入門教學

因為AbstractStringBuilder實作了Appendable介面。

四、運行時異常和非運行時異常的區別 

#運行時異常是運行時錯誤:例如ClassCastException(類別轉換異常)、IndexOutOfBoundsException(數組越界)、NullPointerException(空指標)、ArrayStoreException(資料儲存異常,操作數組時類型不一致)、IO操作的BufferOverflowException異常。

(影片教學建議:java影片教學

非執行階段異常是還未執行可見的錯誤,可以用try、catch捕捉異常。

五、簡述一下物件導向的特徵,並舉例說明你對物件導向的理解 

物件導向的特徵歸結為封裝繼承多型,把現實世界的事物的屬性、行為特徵抽像出來放到一個容器裡(類),例如人類,人的走、聽、吃、說等動作可以歸結為類裡的方法,但又是人類的共同點,人有身高、體重歸結為類別裡的屬性。

封裝:就是設計者把不願意透露給使用者的那部分程式碼就是封裝過的,透過修飾字private(權限最小)、public(權限最大)、protected、default(屬性前預設為該類型),這些才能起到限制類別物件權限的作用。

繼承:子類別繼承父類別的過程,繼承者可以擁有父類別全部方法屬性。好處是提高程式碼重複使用性,子類別只需要寫特有的功能或欄位可以把公共的程式碼抽出到父類別裡面。

多態:透過父類別統一子類別方法屬性,然後透過調用,可以任意使用子類別方法,最佳化程式碼量,原理是子類別對父類別方法進行重寫。

以上是多年開發經驗總結的Java面試問題-(一)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。