国产精品亚洲综合久久系列,一本大道香蕉青青久久,播放高清的播放器,国产在线观看无码不卡

蜜蜂職場文庫 > 面試技巧 >

java高級面試題

時間: 小龍 面試技巧

  java高級工程師在求職面試中,要學會做好準備,提前了解那些面試題目很重要,下面小編已經為你們整理了java高級面試題,希望可以幫到你。

  java高級面試題1

  1、Java集合框架是什么?說出一些集合框架的優(yōu)點?

  答:每種編程語言中都有集合,最初的Java版本包含幾種集合類:Vector、Stack、HashTable和Array。隨著集合的廣泛使用,Java1.2提出了囊括所有集合接口、實現(xiàn)和算法的集合框架。在保證線程安全的情況下使用泛型和并發(fā)集合類,Java已經經歷了很久。它還包括在Java并發(fā)包中,阻塞接口以及它們的實現(xiàn)。集合框架的部分優(yōu)點如下:

  (1)使用核心集合類降低開發(fā)成本,而非實現(xiàn)我們自己的集合類。

  (2)隨著使用經過嚴格測試的集合框架類,代碼質量會得到提高。

  (3)通過使用JDK附帶的集合類,可以降低代碼維護成本。

  (4)復用性和可操作性。

  2、集合框架中的泛型有什么優(yōu)點?

  答:Java1.5引入了泛型,所有的集合接口和實現(xiàn)都大量地使用它。泛型允許我們?yōu)榧咸峁┮粋€可以容納的對象類型,因此,如果你添加其它類型的任何元素,它會在編譯時報錯。這避免了在運行時出現(xiàn)ClassCastException,因為你將會在編譯時得到報錯信息。泛型也使得代碼整潔,我們不需要使用顯式轉換和instanceOf操作符。它也給運行時帶來好處,因為不會產生類型檢查的字節(jié)碼指令。

  3、Java集合框架的基礎接口有哪些?

  答:Collection為集合層級的根接口。一個集合代表一組對象,這些對象即為它的元素。Java平臺不提供這個接口任何直接的實現(xiàn)。

  Set是一個不能包含重復元素的集合。這個接口對數(shù)學集合抽象進行建模,被用來代表集合,就如一副牌。

  List是一個有序集合,可以包含重復元素。你可以通過它的索引來訪問任何元素。List更像長度動態(tài)變換的數(shù)組。

  Map是一個將key映射到value的對象。一個Map不能包含重復的key:每個key最多只能映射一個value。

  一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。

  4、為何Collection不從Cloneable和Serializable接口繼承?

  答:Collection接口指定一組對象,對象即為它的元素。如何維護這些元素由Collection的具體實現(xiàn)決定。例如,一些如List的Collection實現(xiàn)允許重復的元素,而其它的如Set就不允許。很多Collection實現(xiàn)有一個公有的clone方法。然而,把它放到集合的所有實現(xiàn)中也是沒有意義的。這是因為Collection是一個抽象表現(xiàn)。重要的是實現(xiàn)。

  當與具體實現(xiàn)打交道的時候,克隆或序列化的語義和含義才發(fā)揮作用。所以,具體實現(xiàn)應該決定如何對它進行克隆或序列化,或它是否可以被克隆或序列化。

  在所有的實現(xiàn)中授權克隆和序列化,最終導致更少的靈活性和更多的限制。特定的實現(xiàn)應該決定它是否可以被克隆和序列化。

  5、為何Map接口不繼承Collection接口?

  答:盡管Map接口和它的實現(xiàn)也是集合框架的一部分,但Map不是集合,集合也不是Map。因此,Map繼承Collection毫無意義,反之亦然。

  如果Map繼承Collection接口,那么元素去哪兒?Map包含key-value對,它提供抽取key或value列表集合的方法,但是它不適合“一組對象”規(guī)范。

  6、Iterator是什么?

  答:Iterator接口提供遍歷任何Collection的接口。我們可以從一個Collection中使用迭代器方法來獲取迭代器實例。迭代器取代了Java集合框架中的Enumeration。迭代器允許調用者在迭代過程中移除元素。

  java高級面試題2

  1.Java的HashMap是如何工作的?

  HashMap是一個針對數(shù)據(jù)結構的鍵值,每個鍵都會有相應的值,關鍵是識別這樣的值。

  HashMap 基于 hashing 原理,我們通過 put ()和 get ()方法儲存和獲取對象。當我們將鍵值對傳遞給 put ()方法時,它調用鍵對象的 hashCode ()方法來計算 hashcode,讓后找到 bucket 位置來儲存值對象。當獲取對象時,通過鍵對象的 equals ()方法找到正確的鍵值對,然后返回值對象。HashMap 使用 LinkedList 來解決碰撞問題,當發(fā)生碰撞了,對象將會儲存在 LinkedList 的下一個節(jié)點中。 HashMap 在每個 LinkedList 節(jié)點中儲存鍵值對對象。

  2.什么是快速失敗的故障安全迭代器?

  快速失敗的Java迭代器可能會引發(fā)ConcurrentModifcationException在底層集合迭代過程中被修改。故障安全作為發(fā)生在實例中的一個副本迭代是不會拋出任何異常的??焖偈〉墓收习踩独x了當遭遇故障時系統(tǒng)是如何反應的。例如,用于失敗的快速迭代器ArrayList和用于故障安全的迭代器ConcurrentHashMap。

  3.Java BlockingQueue是什么?

  Java BlockingQueue是一個并發(fā)集合util包的一部分。BlockingQueue隊列是一種支持操作,它等待元素變得可用時來檢索,同樣等待空間可用時來存儲元素。

  4.什么時候使用ConcurrentHashMap?

  在問題2中我們看到ConcurrentHashMap被作為故障安全迭代器的一個實例,它允許完整的并發(fā)檢索和更新。當有大量的并發(fā)更新時,ConcurrentHashMap此時可以被使用。這非常類似于Hashtable,但ConcurrentHashMap不鎖定整個表來提供并發(fā),所以從這點上ConcurrentHashMap的性能似乎更好一些。所以當有大量更新時ConcurrentHashMap應該被使用。

  java高級面試題3

  1.通過什么參數(shù)分配Java內存使用?

  java -Xms128m -Xmx512m

  2.Treemap和Hashmap區(qū)別是什么?

  TreeMap對Key進行排序,而HashMap不排序。HashMap通過hashcode對其內容進行快速查找, 而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個有序的結果你就應該 使用TreeMap(HashMap中元素的排列順序是不固定的)。

  3.為何加入:private static final long serialVersionUID?

  可以利用JDK的bin目錄下的serialver.exe工具產生。

  序列化時為了保持版本的兼容性,即在版本升級時反序列化仍保持 對象的唯一性。在java中serialVersionUID是唯一控制著能否反序列化成功的標志, 只要這個值不一樣,就無法反序列化成功。

  4.JSp編譯和執(zhí)行原理?

  JSp文件的Scriptlets在編譯后將被包含于該JSp servlet的service()方法。當JSp引擎處理客戶端請求時,JSp Scriptlets在被請求的時候被執(zhí)行。如果scriptlet產生輸出,輸出將在out (JSpWriter)對象中進行緩存然后最終發(fā)送到客戶端。

  5.怎么解決JSp/Servlet web中中文亂碼的問題

  6.JDBC中,statement,prepared statement ,Callable statement的區(qū)別是什么?

  Statement 接口提供了執(zhí)行語句和獲取結果的基本方法。preparedStatement 接口添加了處理 IN 參數(shù)的方法;而 CallableStatement 添加了處理 OUT 參數(shù)的方法。

  preparedStatement:對于同一條語句的多次執(zhí)行,Statement每次都要把SQL語句發(fā)送給數(shù)據(jù)

  庫,這樣做效率明顯不高,而如果數(shù)據(jù)庫支持預編譯,preparedStatement可以先把要執(zhí)行的語句一次發(fā)給它,然后每次執(zhí)行而不必發(fā)送相同的語句,效率當然提高,當然如果數(shù)據(jù)庫不支持預編譯,

  preparedStatement會象Statement一樣工作,只是效率不高而不需要用戶工手干預.

  另外preparedStatement還支持接收參數(shù).在預編譯后只要傳輸不同的參數(shù)就可以執(zhí)行,大大

  提高了性能.

  CallableStatement:是preparedStatement的子類,它只是用來執(zhí)行存儲過程的.

  
看了“java高級面試題”

50792