一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

JAVA面試題

時(shí)間:2024-07-13 16:38:19 JAVA認證 我要投稿

2016年JAVA面試題

  Java面試題難嗎?下面yjbys小編就為大家分享最新的java面試題及答案,希望對大家有所幫助!

2016年JAVA面試題

  1. 面向對象編程的三大特性是什么,請簡(jiǎn)要闡述

  (1).繼承:

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

  (2).封裝:

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

  (3).多態(tài)性:

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

  2. String 和StringBuffer的區別

  JAVA平臺提供了兩個(gè)類(lèi):String和StringBuffer,它們可以?xún)Υ婧筒僮髯址,即包含多個(gè)字符的字符數據這個(gè)String類(lèi)提供了數值不可改變字符串而這個(gè)StringBuffer類(lèi)提供的字符串進(jìn)行修改當你知道字符數據要改變的時(shí)候你就可以使用StringBuffer典型地,你可以使用StringBuffers來(lái)動(dòng)態(tài)構造字符數據

  3. 說(shuō)出ArrayList,Vector, LinkedList的存儲性能和特性

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

  4. Collection 和 Collections的區別

  Collection是集合類(lèi)的上級接口,繼承與他的接口主要有Set 和List. Collections是針對集合類(lèi)的一個(gè)幫助類(lèi),他提供一系列靜態(tài)方法實(shí)現對各種集合的搜索、排序、線(xiàn)程安全化等操作。

  5. HashMap和Hashtable的區別

  HashMap是Hashtable的輕量級實(shí)現(非線(xiàn)程安全的實(shí)現),他們都完成了Map接口,主要區別在于HashMap允許空(null)鍵值(key),由于非線(xiàn)程安全,效率上可能高于HashtableJAVA中文站社區門(mén)戶(hù)oC)| g| ax ,HashMap允許將Null作為一個(gè)entryde key 或者value,而Hashtable不允許 HashMap把Hashtable的contains思路方法去掉了,改成containsvalue和containsKey因為contains思路方法容易讓人引起誤解Hashtable繼承自Dictionary類(lèi),而HashMap是Java1.2引進(jìn)的Map interface的一個(gè)實(shí)現。

  最大的區別是,Hashtable的思路方法是Synchronize的,而HashMap不是,在多個(gè)線(xiàn)程訪(fǎng)問(wèn)Hashtable時(shí),不需要自己為它的思路方法實(shí)現同步,而HashMap 就必須為的提供外同步。

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

  6. final, finally, finalize的區別

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

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

  finalize是Object類(lèi)的一個(gè)方法,在垃圾收集器執行的時(shí)候會(huì )調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。

  7. Overload和Override的區別。Overloaded的方法是否可以改變返回值的類(lèi)型?

  重載(Overload):

  (1)方法重載是讓類(lèi)以統一的方式處理不同類(lèi)型數據的一種手段。多個(gè)同名函數同時(shí)存在,具有不同的參數個(gè)數/類(lèi)型。重載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現。

  (2)Java的方法重載,就是在類(lèi)中可以創(chuàng )建多個(gè)方法,它們具有相同的名字,但具有不同的參數和不同的定義。調用方法時(shí)通過(guò)傳遞給它們的不同參數個(gè)數和參數類(lèi)型來(lái)決定具體使用哪個(gè)方法, 這就是多態(tài)性。

  (3)重載的時(shí)候,方法名要一樣,但是參數類(lèi)型和個(gè)數不一樣,返回值類(lèi)型可以相同也可以不相同。無(wú)法以返回型別作為重載函數的區分標準。

  重寫(xiě)(Override):

  (1) 父類(lèi)與子類(lèi)之間的多態(tài)性,對父類(lèi)的函數進(jìn)行重新定義。如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數,我們說(shuō)該方法被重寫(xiě) (Overriding)。在Java中,子類(lèi)可繼承父類(lèi)中的方法,而不需要重新編寫(xiě)相同的方法。但有時(shí)子類(lèi)并不想原封不動(dòng)地繼承父類(lèi)的方法,而是想作一定的修改,這就需要采用方法的重寫(xiě)。方法重寫(xiě)又稱(chēng)方法覆蓋。

  (2) 若子類(lèi)中的方法與父類(lèi)中的某一方法具有相同的方法名、返回類(lèi)型和參數表,則新方法將覆蓋原有的方法。如需父類(lèi)中原有的方法,可使用super關(guān)鍵字,該關(guān)鍵字引用了當前類(lèi)的父類(lèi)。

  (3)子類(lèi)函數的訪(fǎng)問(wèn)修飾權限不能少于父類(lèi)的

  重寫(xiě)方法的規則:

  1.參數列表必須完全與被重寫(xiě)的方法的相同,否則不能稱(chēng)其為重寫(xiě)而是重載.

  2.返回的類(lèi)型必須一直與被重寫(xiě)的方法的返回類(lèi)型相同,否則不能稱(chēng)其為重寫(xiě)而是重載.

  3.訪(fǎng)問(wèn)修飾符的限制一定要大于被重寫(xiě)方法的訪(fǎng)問(wèn)修飾符(public>protected>default>private)

  4.重寫(xiě)方法一定不能拋出新的檢查異;蛘弑缺恢貙(xiě)方法申明更加寬泛的檢查型異常.例如,

  父類(lèi)的一個(gè)方法申明了一個(gè)檢查異常IOException,在重寫(xiě)這個(gè)方法是就不能拋出Exception,只能拋出IOException的子類(lèi)異常,可以?huà)伋龇菣z查異常.

  而重載的規則:

  1.必須具有不同的參數列表;

  2.可以有不同的返回類(lèi)型,只要參數列表不同就可以了;

  3.可以有不同的訪(fǎng)問(wèn)修飾符;

  4.可以?huà)伋霾煌漠惓?

  重寫(xiě)和重載的區別在于:

  重寫(xiě)多態(tài)性起作用,對調用被重載過(guò)的方法可以大大減少代碼的輸入量,同一個(gè)方法名只要往里面傳遞不同的參數就可以擁有不同的功能或返回值.

  用好重寫(xiě)和重載可以設計一個(gè)結構清晰而簡(jiǎn)潔的類(lèi),可以說(shuō)重寫(xiě)和重載在編寫(xiě)代碼過(guò)程中的作用非同一般.

  Overloaded的方法是可以改變返回值的類(lèi)型。

  8. error和exception有什么區別?

  error 表示恢復不是不可能但很困難的情況下的一種嚴重問(wèn)題。比如說(shuō)內存溢出。不可能指望程序能處理這樣的情況。

  exception 表示一種設計或實(shí)現問(wèn)題。也就是說(shuō),它表示如果程序運行正常,從不會(huì )發(fā)生的情況。

  9. abstract class和interface有什么區別?

  1.abstract class 在 Java 語(yǔ)言中表示的是一種繼承關(guān)系,一個(gè)類(lèi)只能使用一次繼承關(guān)系。但是,一個(gè)類(lèi)卻可以實(shí)現多個(gè)interface。

  2.在abstract class 中可以有自己的數據成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數據成員(也就是必須是static final的,不過(guò)在 interface中一般不定義數據成員),所有的成員方法都是abstract的。

  3.abstract class和interface所反映出的設計理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。

  4.實(shí)現抽象類(lèi)和接口的類(lèi)必須實(shí)現其中的所有方法。抽象類(lèi)中可以有非抽象方法。接口中則不能有實(shí)現方法。

  5.接口中定義的變量默認是public static final 型,且必須給其初值,所以實(shí)現類(lèi)中不能重新定義,也不能改變其值。

  6.抽象類(lèi)中的變量默認是 friendly 型,其值可以在子類(lèi)中重新定義,也可以重新賦值。

  7.接口中的方法默認都是 public,abstract 類(lèi)型的。

  10. List, Set, Map是否繼承自Collection接口

  List,Set是繼承自Collection,Map不是。

  11. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  swtich中只能用byte short int char

  12. char型變量中能不能存貯一個(gè)中文漢字?為什么?

  能夠定義成為一個(gè)中文的,因為java中以unicode編碼,一個(gè)char占16個(gè)字節,所以放一個(gè)中文是沒(méi)問(wèn)題的。

  13. 多線(xiàn)程有幾種實(shí)現方法,都是什么?哪一種方式比較優(yōu)秀?同步有幾種實(shí)現方法,都是什么?

  多線(xiàn)程有兩種實(shí)現方法,分別是繼承Thread類(lèi)與實(shí)現Runnable接口

  實(shí)現Runnable接口比較好,因為實(shí)現類(lèi)可以實(shí)現多個(gè)接口,而只能繼承一個(gè)類(lèi)。

  同步的實(shí)現方面有兩種,分別是synchronized,wait與notify

  14. java中有幾種類(lèi)型的流?JDK為每種類(lèi)型的流提供了一些抽象類(lèi)以供繼承,請說(shuō)出他們分別是哪些類(lèi)

  字節流,字符流。字節流繼承與inputStream/outputStream,字符流繼承于inputStreamReader/outputSteamWriter。

【JAVA面試題】相關(guān)文章:

經(jīng)典的Java基礎面試題03-07

java面試題2017及答案03-06

java基礎面試題201703-30

Java認證經(jīng)典面試題目03-31

高級Java面試題匯總03-04

Java main方法面試題及答案03-14

Java工程師面試題03-29

NIIT認證Java面試題及答案03-30

高級Java面試題及答案201602-26

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看