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

时间:2022-07-08 09:22:09

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

/*
* 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---
进入实例初始化块
实例初始化块中调用变量:实例变量
实例初始化块中调用方法:实例方法
构造器


参考其他:http://blog.csdn.net/avinegar/article/details/7749431