对象创办过程

对象创建过程

对象创建过程

 

假如创建类Hello的对象:

 

(1)当首次创建类型为Hello的对象或Hello类的静态方法/静态域首次被访问 时,java解释器必须查找类路径,定位Hello.class.

(2)载入Hello.class(这将传经一个Class对象),有关静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。

(3)当用new Hello()创建对象的时候,首先将在 上为Hello对象分配足够的存储空间

(4)这块存储空间会被清零,Hello对象的所有基本类型数据都设置为默认值,而引用被设置为null。

(5)执行所有出现于字段定义处的字段初始化动作

(6)执行构造器。

 

 

静态成员初始化

 

public class Think {
	
public static void main(String ars[]){
Cups.c.f(3);
Cups.c.f(5);
}}

class Cup{
	void f(int m){
		System.out.println(m);
	}
}
class Cups{
	static Cup c;
	//静态子句,只执行一次,首次创建类型为Hello的对象或Hello类的静态方法/静态域首次被访问

时
	static{
		c = new Cup();
		System.out.println("sdsds");
	}
	//构造函数未执行
	Cups(){
		System.out.println("构造CUPS");
	}
}
 

非静态实例初始化 :使用new关键字