1. 程式人生 > >Java基礎面試集合(一)

Java基礎面試集合(一)

一.Java傳遞引數的兩種方式:

    1. 值傳遞:(傳值),八種基本資料型別和Stringfinal

    2. 引用傳遞:(傳地址),其餘複合型別介面(陣列、類和介面

    3. 理解:針對Java引數,無論是原始型別還是引用型別,傳遞的都是副本:

        (1) 原始型別:傳入的是副本(值),副本的值改變不會影響原始的值;

        (2) 引用型別:傳入的是副本(地址),若new一個,則不會改變,否則地址改變,原始值也改變。

二. finalfinallyfinalize

    1. final:變數:不能修改;類:不能被繼承;方法:不能被過載;

    2. finally

異常處理關鍵字(執行finally塊)

        try{}:非異常時執行try塊程式碼;

        catch{}try中異常時執行finally塊程式碼;

        finally{}:都必須執行;

    3. finalize:方法名,在堆永久刪除物件之前,垃圾回收器呼叫該方法;

三. Java中字串之間的轉換:

     1. string

        (1) charstringstringvalueOf方法)

            Char c = ‘’;

            String s = string.valueOf(c);

        (2) char

int:(強制型別轉換)

            int i = (int) c;

    2. char

        (1) StringcharstringtoCharArray()[位置]方法)

        (2) intchar

            ① 強制型別轉化:(當作ASCⅡ碼處理,’(’)

                Int a = 40;

                Char c = (char) a;

            ② 先轉成字串,再轉成char

                int a = 4;

                String str = String.valueOf(a);

                char[] array = str.toCharArray();

                for (int i = 0; i < array.length; i++)

                { System.out.print(array[i]); }

    3. int

        (1) Stringint(使用integerparseInt方法)

        (2) Charint(轉為字串,在使用parseInt方法)

    4. intinteger之間(intValue方法):

        Integer i1 = new integer(10)

        Int i2 = integer.intValue()

四. objectString中的equals區別:

    1. String而言:

        “equals”:(比較的是兩個字串的內容);

        “==”:(比較的是兩個字串物件的引用);

        String a = new String(“abc”);

        String b = new String(“abc”);

        String c = b;

        則:equals方法都為true==方法:a==bfalseb==ctrue

    2. Object而言:

        “equals”:(比較的是物件的引用

    3. String繼承了Object類,equals方法進行了重寫(引用->內容)

    4. 總結:

        Object.equals相等,String.equals一定相等

        String.equals相等,Object.equals不一定相等

五. Java中的intinteger之間的區別:

    1. int是基本資料型別,直接存放數值,初始預設為0

    2. Integer是物件,需要例項化,初始預設為null

    3. 享元模式:(自動拆箱和自動裝箱)

  裝箱:integer a = 10; (將資料型別轉換成物件)

  拆箱:a++; (將物件轉換成資料型別,進行運算)

六. 過載和重寫區別:

    1. 過載(Overload)(多型):同一類中出現多個同名的方法(形參不同)

    2. 重寫(Override):子類對父類的方法進行重新編寫;

    3. 區別:(看看是不是在同一個類中

七. arrayListLinkedList的區別

    1. arrayList:基於動態陣列;(讀取資料使用方便,無需移動指標)

    2. LinkedList:基於連結串列;(增、刪、加使用方便,移動指標)