1. 程式人生 > >java基礎--static關鍵字的使用以及記憶體圖解

java基礎--static關鍵字的使用以及記憶體圖解

1、靜態變數--每當建立一個類的例項時就會在堆區建立這個類的所有屬性物件,如有被static 修飾的屬性時,則將此屬性放入靜態區中被共享。

1-1未加static關鍵字修飾的變數

/**
 * static關鍵字修飾的變數
 * @author Administrator
 *
 */
public class Test_Static {
	public static void main(String[] args) {
		Person p1 = new Person("小明",15,"河南");
		Person p2 = new Person("小紅",14,"河南");
		Person p3 = new Person("小亮",19,"河南");
		p1.city="河北";
		p2.city="河北";
		p3.city="河北";
		p1.printData();
		p2.printData();
		p3.printData();
	}
	
}

class Person{
	String name;
	int age ;
	String city;
	
	public Person(){}
	
	public Person(String name,int age,String city){
		this.name = name;
		this.age = age;
		this.city = city;
	}
	
	public void printData(){
		System.out.println("姓名:"+name+"--年齡:"+age+"--城市:"+city);
	}
}
列印結果:

姓名:小明--年齡:15--城市:河北
姓名:小紅--年齡:14--城市:河北
姓名:小亮--年齡:19--城市:河北

記憶體圖解:


1-2 被static修飾的變數

public class Test_Static {
	public static void main(String[] args) {
		Person p1 = new Person("小明",15);
		Person p2 = new Person("小紅",14);
		Person p3 = new Person("小亮",19);
		Person.city="河北";
		p1.printData();
		p2.printData();
		p3.printData();
	}
	
}

class Person{
	String name;
	int age ;
	static String city = "河南";
	
	public Person(){}
	
	public Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	
	public void printData(){
		System.out.println("姓名:"+name+"--年齡:"+age+"--城市:"+city);
	}
}

列印結果:

姓名:小明--年齡:15--城市:河北
姓名:小紅--年齡:14--城市:河北
姓名:小亮--年齡:19--城市:河北

記憶體圖解: