• java面試題的題目及答案

    時間:2022-06-24 06:34:15 面試 我要投稿
    • 相關推薦

    java面試題的題目及答案

    1.java異常機制的原理與應用

    java面試題的題目及答案

    答:每當程序出現異常之后,如果程序沒有進行相應的處理,則程序會出現中斷現象。

    實際上,產生了異常之后,JVM會拋出一個異常類的實例化對象,如果此時使用了try語句捕獲的話,則可以進行異常的處理,否則,交給JVM進行處理。當try語句捕獲異常之后,將與catch語句的異常類型進行匹配,如果匹配成功則執行catch內的語句。簡單的應用:在所以throws語句的地方加入try-catch。標準應用:try-catch-finally-throw-throws一起使用。

    2. 垃圾回收機制的優點

    答:釋放無用的對象所占用的空間。方式:自動回收,手動回收。使用System.gc(),實際上調用Runtime.getRuntime().gc()

    3. Error與Exception區別

    答:Error是jvm進行處理,是jvm出錯

    exception是可以由程序處理的,可以用try-catch捕獲的

    4. final,finally,finallize

    答:final定義的變量的值不能改變,定義的方法不能被覆蓋,定義的類不能被繼承

    finally是異常的統一出口,finallize是垃圾回收前的收尾工作,是Object類定義的

    5. Anonymous Inner Class是否可以extends,是否可以implements Interface

    答:允許繼承和實現,因為匿名內部類就是在抽象類和接口的基礎上發展起來的

    6. Static Nested Class 與Inner Class的區別

    答:使用Static定義的Class就是外部類,可以通過外部類. 內部類直接訪問

    而Inner Class是不能被外部訪問的,只能通過外部類的實例再找到內部類實例。

    7. HashMap and HashTable?

    答:HashMap:1) released in jdk 1.2,new Class 2)采用異步處理方式,性能較高,是非線程安全的 3)允許null

    HashTable:1)released in jdk 1.0 ,old Class 2)采用同步處理方式,性能低,是線程安全的3)不允許null

    8. assert代表什么?

    答:asserts是jdk 1.4之后發布的新關鍵字,表示斷言,即程序執行到某個地方肯定是預計的值,一般開發很少使用。要使用assert,必須加上 -ea參數

    9. gc是什么?

    答:gc是garbage collection,垃圾回收,使用gc可以進行垃圾空間的釋放

    10. String s = new String("xyz")產生了幾個對象?

    答:一個匿名對象xyz,在?臻g內。一個new實例化的對象,在堆空間內。

    11. sleep() and wait()?

    答:sleep()是Thread類定義方法,表示線程的休眠,可以自動喚醒

    wait()方法是Object類定義的方法,需要手動notify()和notifyAll()//sleep()不釋放資源,wait()釋放資源

    12. java中存在goto,但不能使用

    13.數組有沒有length(),String有沒有length()?

    答:數組有length屬性,String有length()

    14. Overload與Override的區別

    答:Overload:重載

    |- 在一個類中定義的若干方法

    |- 所有的方法名相同,但參數類型或個數不同

    |- 只有參數有關,與返回類型無關

    Override:覆寫

    |- 在繼承的關系中

    |- 子類定義了父類同名的方法,參數類型或個數最好完全一樣。

    |- 訪問權限不能更嚴格

    15. Set里的元素不能重復,用什么方法區分?==與equals()方法的區別

    答:set里的元素是不能重復的,用iterator()方法來區分重復與否,==屬于地址比較,

    ==用于比較引用和比較基本數據類型時具有不同的功能:

    比較基本數據類型,如果兩個值相同,則結果為true

    而在比較引用時,如果引用指向內存中的同一對象,結果為true

    16. 列出常見的 runtime exception

    答:NumberFormatException/ArrayOutIndexofBoundException/NullPointerException/ClassCastException

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

    答:抽象類:

    |-由抽象方法和常量、變量、全局常量、構造方法、普通方法組成

    |-使用abstract聲明

    |-子類要通過extends繼承抽象類,子類如果不是抽象類,則必須覆寫抽象類的全部抽象方法

    |-存在單繼承的局限

    |-抽象類可以實現若干個接口

    接口:

    |-由抽象方法和全局常量組成

    |-使用interface關鍵字

    |-子類要通過implements實現接口,子類如果不是抽象類,則必須覆寫抽象類的全部抽象方法

    |-一個子類可以實現多個接口

    |-接口不能繼承一個抽象類,但允許繼承多個接口

    18. 啟動一個線程要用start(),因為要通知jvm進行cpu資源的分配

    19. try{}里面有一個return,問finally{}里面的代碼是否執行,在什么時機執行?

    答:finally{}里面的代碼執行,在return之前。

    20. 寫一個singleton

    答:singleton的核心就是構造方法私有化,Class,Runtime都采用單例

    package com.leongod.demo;

    public class Singleton(){

    private static final sin = new Singleton();

    private Singleton(){}

    public static Singleton getInstance(){

    return sin;

    }

    }

    21. 程序設計:輸入一組數字,然后排序輸出

    答:package com.leongod.demo;

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.util.Iterator;

    import java.util.Set;

    import java.util.TreeSet;

    public class IO {

    public static void main(String[] args) throws Exception {

    BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

    System.out.println("請輸入一組數字,中間用空格分割:");

    String str = buf.readLine();

    Set set = new TreeSet();

    String[] arr = str.split(" ");

    for(String s : arr) {

    if (s.matches("\d+")) {

    set.add(Integer.parseInt(s));

    }

    }

    Iterator it = set.iterator();

    System.out.println("排序后的結果:");

    while (it.hasNext()) {

    System.out.print(it.next() + ",");

    }

    }

    }

    22.列出目錄內的文件

    package com.leongod.demo;

    import java.io.File;

    import com.sun.org.apache.xpath.internal.functions.FuncBoolean;

    public class FileDemo {

    public static void main(String[] args) {

    ?? File file = new File("D:" + File.separator + "kongkong");

    ?? fun(file);

    }

    public static void fun(File file) {

    if (file.isDirectory()) {

    File[] lf = file.listFiles();

    if (lf != null) {

    for(File f : lf) {

    fun(f);

    }

    }

    }else {

    System.out.println(file.toString());

    }

    }

    }

    23. char可以存一個中文漢字嗎?

    答:可以,使用了unicode編碼

    24.多線程有幾種實現方法,都是什么?同步有幾種實現方法,都是什么?

    答:兩種多線程方法,繼承Thread類,實現Runnable接口

    |-Thread類是Runnable接口的子類

    |-使用Runnable接口可以實現資源共享的目的

    |-所有線程操作都必須通過Thread類的start()方法啟動

    兩種實現同步的方法:

    |-同步代碼塊:Synchronized(this)

    |-同步方法

    25.f=3.4是不對的,3.4默認是double類型的

    26.String and StringBuffer?

    答:String 不可以修改,StringBuffer可以修改

    27.Class.forname向容器中加載驅動程序

    28.int與Integer有什么區別?

    答:int是基本數據類型,Integer是包裝類

    在jdk1.5以后,可以實現自動裝箱和拆箱

    29.2*8有效的方法是移位操作:2<<3

    30.請說出類集框架的完整結構

    答:類級框架的最大接口:Collection、Map、Iterator、Enumeration

    Collection:存放單值

    |-List:允許有重復內容

    |-ArrayList:異步處理,新的操作類,非線程安全

    |-Vector:同步處理,舊的操作類,線程安全,支持Enumeration

    |-Set:不允許有重復的內容,依靠hashCode()和equals()進行重復的驗證

    |-HashSet:無序存放

    |-TreeSet:有序存放,按Comparable排序

    |-Map:存放一對值

    |-HashMap:新的類,異步處理,非線程安全,允許有null

    |-HashTable:舊的類,同步處理,線程安全,不允許有null

    |-TreeMap:有序排列,按key配需

    |-Iterator:迭代輸出,依靠collection接口中的iterator方法輸出,是新的輸出標準

    31.是否可以繼承String類?答:不可以,因為使用了final關鍵字


    【java面試題的題目及答案】相關文章:

    JAVA題庫:JAVA面試題目整理07-11

    java 面試題目求助!07-13

    面試題目及答案06-28

    JAVA筆試和面試題目大全07-13

    2015java面試題及答案06-23

    Java試題筆試題目答案06-23

    一道Java面試題,題目如下07-11

    Java常見面試題(含答案)07-13

    6道經典英語面試題目及答案06-29

    java面試題目:上機操作題07-13

    黄频国产免费高清视频_富二代精品短视频在线_免费一级无码婬片aa_精品9E精品视频在线观看