1、靜態嵌套類別 (Static Nested Class) 和內部類別(Inner Class)的不同?
靜態嵌套類別:Static Nested Class是被宣告為靜態(static)的內部類,它可以不依賴外部類別實例被實例化。
內部類別:需要在外部類別實例化後才能實例化,其語法看起來挺詭異的。 (建議學習:java面試題目)
2、以下的程式碼哪些地方會產生編譯錯誤?
class Outer { class Inner { } public static void foo() { new Inner(); } public void bar() { new Inner(); } public static void main(String[] args) { new Inner(); } }
注意:Java中非靜態內部類別對象的建立要依賴其外部類別對象,上面的面試題中foo和main方法都是靜態方法,靜態方法中沒有this,也就是說沒有所謂的外部類別對象,因此無法建立內部類別對象,如果要在靜態方法中建立內部類別對象,可以這樣做:
new Outer().new Inner();
Java中的反射
說說你對Java 中反射的理解
Java中的反射首先是能夠取得到Java中要反射類別的字節碼,取得字節碼有三種方法:
Class.forName(className)。
類別名稱.class。
this.getClass()。
然後將字節碼中的方法,變量,構造函數等映射成相應的Method、Filed、Constructor等類,這些類提供了豐富的方法可以被我們所使用。
以上是Java內部類別及反射類別面試題目的詳細內容。更多資訊請關注PHP中文網其他相關文章!