暫時貼圖一張,以後補充

解釋:
1.符号引用替換為直接引用【參考:http://blog.csdn.net/maerdym/article/details/8087620】
在java中,一個java類将會編譯成一個class檔案。在編譯時,java類并不知道引用類的實際記憶體位址,是以隻能使用符号引用來代替。比如org.simple.People類引用org.simple.Tool類,在編譯時People類并不知道Tool類的實際記憶體位址,是以隻能使用符号org.simple.Tool(假設)來表示Tool類的位址。而在類裝載器裝載People類時,此時可以通過虛拟機擷取Tool類 的實際記憶體位址,是以便可以既将符号org.simple.Tool替換為Tool類的實際記憶體位址,及直接引用位址。
2.構造代碼塊中的代碼也是在構造方法中執行的【參考:http://bbs.csdn.net/topics/390635323?page=1】
在編譯時的編譯器看來會預設将構造代碼塊中的代碼移動到構造方法中,并且移動到構造方法内容的前面。
看如下demo:
等同于: