java 使用new新建一個物件時的操作過程
阿新 • • 發佈:2019-01-25
</pre><p></p><p><span style="font-family:Microsoft YaHei">/**</span></p><span style="font-family:Microsoft YaHei">Person p1 = new Person("lili",20);該語句執行了那些事情?1、因為new用到了Person.class,所以會先找到Person.class檔案並載入到記憶體2、執行該類中的static程式碼塊(存於方法區),如果有的化,給Person.class類進行初始化3、在堆記憶體中開闢空間,分配記憶體地址4、在堆記憶體中建立物件的特有屬性,並進行預設初始化5、對屬性進行顯示初始化6、對物件進行構造程式碼塊初始化7、對物件進行對應的建構函式初始化("lili",20)8、將記憶體地址賦給棧記憶體中的P變數</span><p><span style="font-family:Microsoft YaHei">*/</span></p><p><span style="font-family:Microsoft YaHei"></span></p><pre name="code" class="java">class Person { private String name; //預設初始化 private int age = 1; //顯示初始化 private static String country = "CN"; /**建構函式初始化*/ Person(String name,int age) { this.name = name; this.age = age; } /**程式碼塊初始化*/ { name = "haha"; age = 18 ; } public void setName(String name) { this.name = name; } public void speak() { System.out.println("name:"+name+"...."+"age:"+age); } public static void showCountry() { System.out.println("country = "+country); } } class PersonDemo { public static void main(String[] args) { Person p1 = new Person("lili",20); } }