當前位置:才華齋>計算機>計算機三級>

關於java重難點面試題

計算機三級 閱讀(2.34W)

正所謂不積跬步,無以至千里;不積小流,無以成江海。想要學好一門計算機語言,基本功很重要,下面是本站小編為大家搜尋整理的關於java重難點面試題,歡迎參考閱讀,希望對大家有所幫助!想了解更多相關資訊請持續關注我們應屆畢業生考試網!

關於java重難點面試題

  1、方法過載與覆蓋的區別?(Overload與Override的區別)

答:方法覆蓋是父類直接多型性的一種表現,而方法過載則是一個類中多型性的表現。

  2、 String 和StringBuffer的區別

答:String為不可變物件,一旦被建立,就不能修改它的值,對於已經存在的String物件的修改都是重新建立一個新的物件,然後再把新的值儲存進去。

StringBuffer是可變物件,在修改值的時候不需要再新建物件,可以用append()方法在後面新增新的值,效能比String高。

  3、介面和抽象類

答:介面(interface):介面是用來實現的,裡面定義的方法在被子類覆蓋時子類中的方法都是public的,裡面的`成員物件都是final&static,裡面的方法都要被實現。

抽象類(abstract):是用來被繼承的,裡面定義的方法在被子類覆蓋時子類的方法不一定都是public的,裡面的成員物件不是final&static,在其內部中有abstract方法才會被必須實現。

  4、集合類的區別:

java容器類庫一共有兩種主要型別,Collection和Map。

Collection:它是針對集合類的一個幫助類,它提供一系列靜態方法實現對各種集合的搜尋、排序、執行緒完全化等操作。如:(Collection coll); (List list);

分為List(ArrayList,LinkedList,Vector,都是有序,元素可重複),

Set(HashSet,TreeSet,LinkedHashSet,都是無序,且元素不可重複),

Queue(PriorityQueue,先進先出的容器)

Map:

HashMap,HashTable,TreeMap

主要其中幾款常用到的:

ArrayList:底層用陣列實現,查詢效率高,增刪效率低,輕量級,執行緒不安全

LinkedList:底層用雙向迴圈連結串列,查詢效率慢,增刪效率高。

Vector:底層用陣列實現,重量級,佔據更多的系統開銷,執行緒安全。

HashSet:底層用的是雜湊演算法。

HashMap:輕量級,執行緒不安全,允許key或者value是null。

HashTable:重量級,先出安全,不允許key或者value是null。

  5、執行緒的四種狀態:

答:產生(new),可執行(Runnable),死亡(Dead),停滯(Blocked)

執行緒的實現方式:extends Thread 和 implements Runnable

  6、執行緒中wait,join,sleep,yield,notify,notifyall,synchronized,區別及聯絡

答:sleep():在指定時間內讓當前正在執行的執行緒休眠。

wait():線上程休眠的同時釋放掉機鎖,其他執行緒可以訪問該物件。wait必須在同步程式碼塊中執行。

那怎樣把物件鎖收回來呢?第一種就是給其設定時間,時間一到就立刻收回來,如:wait(1000);

notify():收回物件鎖的另一種方式,它的作用是喚醒在此物件監視器上等待的單個執行緒。當被執行notify()方法後,等待池中的執行緒就被放到了鎖池中,並取得機鎖,回到wait()前的中斷現場

notifyAll():喚醒在此物件監視器上等待的所有執行緒。

join():等待當前執行緒執行完。

yield():停止當前執行緒,讓同等優先順序的執行緒先執行,如果不是同等優先順序的執行緒,則不執行。

synchronized:當它用來修飾一個方法或者一個程式碼塊時,能夠保證在同一時刻只有一個執行緒能夠執行該段程式碼。

  7、 final、finally、finanlize()的區別

答:final:用來修飾成員、方法和類,使得成員變數不能被修改,方法不能被覆寫,類不能被繼承。

finally:對java異常處理模型的最佳補充,不管有無異常發生,finally結構的程式碼總會被執行。

finalize:用於一些不容易控制,並且非常重要的資源的釋放,例如:I/O的操作,資料的連線。

  8、位元組流和字元流的區別

答:字元流用到了緩衝區,而字元流沒有用到。

在字元流的操作中,所有的字元都是在記憶體中形成的,在輸出前會將所有的內容暫時儲存在記憶體之中,所以使用了緩衝區暫存資料。

但是我們還是認為使用位元組流更好,理由是:

所有的檔案在硬碟或在傳輸時都是以位元組的方式進行的,包括圖片等都是按位元組的方式儲存的,

而字元是隻有在記憶體中才會形成,所以在開發中,位元組流使用較為廣泛。