Java类的实例化的初始化过程

java

A a = new A();

new 创建对象过程:

1.类加载

    代码验证

2.给对象在内存(堆)中分配空间(给属性赋值);

3.属性赋默认值;

byte,short.int,long ->0

float  ->0.0f

double ->0.0

boolean  ->false

String ->null

char ->'\u0000'

4.给属性赋初始值;(用等号‘=’)

5.调用构造方法(方法和类名相同,没有返回类型)

6.将对象在堆区中的首地址返回给引用a

/*

* Java类实例化的初始化过程.

* 执行顺序:

* (静态变量->静态初始化块)->main->(实例变量->实例初始化块)->构造器

*/

public class NewInstanceTest1

{

public static void main(String[] args)

{

System.out.println("main");

System.out.println("---111---");

new NewInstanceTest1();

System.out.println("---222---");

new NewInstanceTest1();

}

private static int i = 1;

public static String sStr = "静态变量";

public String iStr = "实例变量";

{

// 实例初始化块

System.out.println("进入实例初始化块");

System.out.println("实例初始化块中调用变量:" + iStr);

System.out.print("实例初始化块中调用方法:");

iTalk();

}

static

{

// 静态初始化块

System.out.println("进入静态初始化块");

System.out.println("静态初始化块中调用变量:" + sStr);

System.out.print("静态初始化块中调用方法:");

sTalk();

}

public static void sTalk()

{

// 静态方法

System.out.println("静态方法" + "/静态变量值" + (++i));

}

public void iTalk()

{

// 实例方法

System.out.println("实例方法");

}

public NewInstanceTest1()

{

// 构造器

System.out.println("构造器");

}

}

// 输出结果:

进入静态初始化块

静态初始化块中调用变量:静态变量

静态初始化块中调用方法:静态方法/静态变量值2

main

---111---

进入实例初始化块

实例初始化块中调用变量:实例变量

实例初始化块中调用方法:实例方法

构造器

---222---

进入实例初始化块

实例初始化块中调用变量:实例变量

实例初始化块中调用方法:实例方法

构造器

以上是 Java类的实例化的初始化过程 的全部内容, 来源链接: utcz.com/z/391432.html

回到顶部