java中物件產生初始化過程
阿新 • • 發佈:2018-12-30
以前面試的時候,很多公司的筆試題中有關new一個物件有關一系列初始化的過程的選擇題目。請看下面的題目。
class Parent { static { System.out.println("---static Parnet---"); } public Parent() { System.out.println("----Parent----"); } } class Child extends Parent { static Other other = new Other(); public Child() { System.out.println("----Child-----"); } Brother b = new Brother(); } class Brother { static { System.out.println("---static Brother---"); } public Brother() { System.out.println("----Brother----"); } } class Other { static { System.out.println("---static Other---"); } public Other() { System.out.println("---Other---"); } } public class Test { public static void main(String[] args) { Child child=new Child(); } }
這個題目如果不瞭解java中例項化一個類的時候,更加全面的初始化過程真的還做不出來,因為我們做專案的時候可能沒必要這樣把。下面直接給出答案。
---static Parnet--- ---static Other--- ---Other--- ----Parent---- ---static Brother--- ----Brother---- ----Child-----
答案為什麼是這樣的呢,看了下面總結的你就知道為什麼了哦。更加底層的分析應該從java虛擬機器生成的位元組碼來分析。求大牛們給出java位元組碼的底層分析。。。。。