【Java核心面試寶典】Day9、面向對象常見面試題匯總(四)
Hello,你好呀,我是灰小猿!一個超會寫bug的程序猿!
用堅持締造技術、用指尖敲動未來!
和很多小伙伴們一樣,我也是一名奔波在Java道路上的“創造者”。也想靠技術來改未來,改變世界!因為我們堅信每一次敲動鍵盤都能讓生活變得更智能、世界變得更有趣!
在此專欄《Java核心面試寶典》記錄我們備戰夢想的【day 9】!
今天繼續和大家分享在面向對象中類與接口方面的常見面試題。不要小看任何一個基礎技術點,往往最基礎的才是最會考察的內容。
1、抽象類和接口是否可以被實例化?
抽象類和接口都不能通過new操作符來創建實例,只能通過具體類創建實例。
2、包含抽象方法的類是否必須被聲明為抽象類,抽象類是否必須包含抽象方法?
包含抽象方法的類必須被聲明為抽象類,具體類不能包含抽象方法。而抽象類中可以不包含抽象方法,即使一個類中的所有方法都是具體方法,也可以將這個類聲明為抽象類。
3、從繼承角度而言,抽象類和接口的區別是什么?
類的繼承只能是單重繼承,即一個類只能繼承一個父類;但是對接口的繼承是允許多重繼承的, 即一個類可以繼承多個接口,一個接口同樣也可以繼承多個接口,這樣的接口稱為子接口。
4、從變量、構造方法、方法的角度,闡述抽象類和接口的區別?
抽象類和接口有以下區別:
抽象類的變量沒有限制,接口只包含常量,即接口的所有變量必須是public static final
抽象類包含構造方法,子類通過構造方法鏈調用構造方法,接口沒有構造方法。
抽象類的方法沒有限制,接口的方法必須是public abstract的實例方法,
==同時需要注意==:在新版的JDK中關于接口的規則有了一定的變化,
從Java8開始,接口方法可以由默認實現,
從Java9開始,接口內允許定義私有方法。
5、哪兩個接口可以實現對象之間的排序和比較大小?
Comparable接口是排序接口。如果一個類實現了 Comparable 接口,則該類的對象可以排序。Comparable 接口包含一個抽象方法 compareTo,實現 Comparable 接口的類需要實現該方法,定義排序的依據。
Comparator接口是比較器接口。如果一個類本身不支持排序(即沒有實現 Comparable 接口),但是又需要對該類的對象排序,則可以通過實現 Comparator 接口的方式建立比較器。Comparator 接口包含兩個抽象方法 compare和 equals,其中 compare 方法是必須在實現類中實現的,而 equals 方法在任何類中默認已經實現。
6、如何對一個數組中的多個對象按照不同的依據進行排序?
為了按照不同的依據進行排序,則需要使用不同的比較器,通過實現 Comparator接口實現比較器,在調用Arrays.sort方法時將數組和比較器作為參數,即可將數組按照指定的比較器進行排序。
7、除了首字母大寫,包裝類的名稱和對象的基本數據類型是否一定相同?
不一定,int類型對應的包裝類是Integer,char類型對象的對應的包裝類是Character。
具體的可以看下面這個表格:
8、包裝類的構造方法的參數可以是什么類型的?包裝類的構造方法是否可以無參數?
構造方法的參數值可以是基本數據類型的值,也可以是表示值的字符串。包裝類的構造方法都是有參構造的,沒有無參數構造方法。
9、包裝類的實例是否可變?
包裝類的實例是不可變的,創建包裝對象之后,其內部的值就不能改變。
10、什么是自動裝箱和自動拆箱?
將基本數據類型值轉換為包裝對象,稱為裝箱。將包裝對象轉換為基本數據類型的值稱為拆箱。
同時,從JDK1.5開始,基本數據類型和包裝類之間可以進行自動轉換。
今天學習的內容比較簡單,主要就是抽象類和接口使用規范、知道Java是單重繼承的、了解進行對象序列化的兩個常用接口Comparable和Comparator、熟悉基本數據類型和包裝類之間的轉換。
面向對象的面試題比較多,之后還會繼續總結,如果小伙伴們有遇到其他相關的面試題,歡迎在評論區留言提出,我會把大家提出的總結到文章內`, 歡迎小伙伴們一起評論區打卡學習!小伙伴們可也在左方加我好友一起探討學習!
我是==灰小猿==,我們下期見!
Java 面向對象編程
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。