1. 程式人生 > >java 使用new新建一個物件時的操作過程

java 使用new新建一個物件時的操作過程

</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);
	}
}