首頁 > Java資訊 > 面試必備,Java面試題大全及答案

面試必備,Java面試題大全及答案

更新時間:2020-01-19 13:56 瀏覽259次 來源:動力節點


面試必備,Java面試題大全及答案


  1、面向對象的特征有哪些方面


  1.抽象:


  抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。


  2.繼承:


  繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。


  3.封裝:


  封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。


  4.多態性:


  多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。


  2、String是最基本的數據類型嗎?


  基本數據類型包括byte、int、char、long、float、double、boolean和short。


  java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類


  3、int和Integer有什么區別


  Java提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。


  原始類型封裝類


  booleanBoolean


  charCharacter


  byteByte


  shortShort


  intInteger


  longLong


  floatFloat


  doubleDouble


  引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,當引用類型和原始類型用作某個類的實例數據時所指定的缺省值。對象引用實例變量的缺省值為null,而原始類型實例變量的缺省值與它們的類型有關。


  4、String和StringBuffer的區別


  JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數據。這個String類提供了數值不可改變的字符串。而這個StringBuffer類提供的字符串進行修改。當你知道字符數據要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動態構造字符數據。


  5、運行時異常與一般異常有何異同?


  異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。


  6、說出ArrayList,Vector,LinkedList的存儲性能和特性


  ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入速度較快。


  7、Collection和Collections的區別。


  Collection是集合類的上級接口,繼承與他的接口主要有Set和List.


  Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。


  8、&和&&的區別。


  &是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)。


  9、HashMap和Hashtable的區別。


  HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。


  HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。


  HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。


  Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Mapinterface的一個實現。


  最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap就必須為之提供外同步。


  Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。


  10、final,finally,finalize的區別。


  final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。


  finally是異常處理語句結構的一部分,表示總是執行。


  finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。


面試必備,Java面試題大全及答案


      以上就是動力節點Java培訓機構小編介紹的“面試必備,Java面試題大全及答案”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


相關推薦


最新最全java面試題及答案(初級到高級)


史上最全的中高級JAVA工程師面試題及答案匯總


Java高級開發工程師面試題


2019史上最全java面試題題庫大全800題


哪有資深java工程師面試題


熱門課程推薦

全部班型支持免費試學

動力節點在線報名表(此信息已加密,請放心填寫)

返回頂部
广西快乐十分走图