1. 程式人生 > >JAVA基礎(四)面試題

JAVA基礎(四)面試題

Java基礎 Java程序員面試

面試題:

  • 構造代碼塊,構造方法,靜態代碼的優先級?
  • 靜態代碼塊>構造代碼塊>構造方法

面試題: overload和override的區別?
overload:方法重載
方法名一樣,參數不同,和返回值沒有關系
參數不同:
1)參數個數不同
2)參數類型不同
override:方法重寫 (子類定義一個和父類一摸一樣的方法聲明)
繼續中使用到的

2 關於this和super的區別?
this:代表當前類的對象
super:代表父類空間標識,理解為代表父類的對象

    應用場景:
            this:
            super:
                    成員變量
                            this.成員變量
                            super.成員變量
                    成員方法
                            this.成員方法()
                            super.成員方法();

                    構造方法
                            this()/this("..")
    面試題:
  • 局部內部類訪問局部變量,那麽會出現問題?(jdk7以前包括jdk7,這個有問題的)
  • 會報錯,需要給局部變量添加final修飾...
  • 為什麽這個局部變量必須用final修飾?
  • 應為局部變量在內部類中還要被使用,將變量變成固定值,在內存中始終存在,通過main方法中調用內部類中的成員。

    匿名內部類面試題:
    按照要求,補齊代碼
    interface Inter { void show(); }
    class Outer { //補齊代碼 }
    class OuterDemo {
    public static void main(String[] args) {
    Outer.method().show();
    }
    }
    要求在控制臺輸出”HelloWorld”

  • */
    interface Inter3{
    void show() ;//public abstract
    }
    class Outer7{
    //補齊代碼
    public static Inter3 method() {

    //返回的是接口:當前並不提供接口的子實現類,所以只能用匿名內部類
    return new Inter3() {
        public void show() {
            System.out.println("helloworld");
        }
    };

    }
    }
    //測試類
    public class Test {

    public static void main(String[] args) {

    Outer7.method().show();

    }
    }

JAVA基礎(四)面試題