<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 試題

    java重難點面試題

    時間:2025-03-06 18:33:33 試題 我要投稿
    • 相關推薦

    關于java重難點面試題

      正所謂不積跬步,無以至千里;不積小流,無以成江海。想要學好一門計算機語言,基本功很重要,下面是百分網小編為大家搜索整理的關于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.max(Collection coll); Collection.sort(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、字節流和字符流的區別

      答:字符流用到了緩沖區,而字符流沒有用到。

      在字符流的操作中,所有的字符都是在內存中形成的,在輸出前會將所有的內容暫時保存在內存之中,所以使用了緩沖區暫存數據。

      但是我們還是認為使用字節流更好,理由是:

      所有的文件在硬盤或在傳輸時都是以字節的方式進行的,包括圖片等都是按字節的方式存儲的,

      而字符是只有在內存中才會形成,所以在開發中,字節流使用較為廣泛。

    【java重難點面試題】相關文章:

    java從代碼到運行的重難點講解07-07

    Java面試題(精選)06-30

    java面試題05-20

    Java線程面試題08-25

    高級Java面試題精選11-02

    Java 問答面試題09-03

    Java原理面試題07-13

    經典Java基礎面試題08-13

    高級Java面試題匯總11-03

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人