标签:类型 str pre 实例初始化 float 代码 oid number tle
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---
进入实例初始化块
实例初始化块中调用变量:实例变量
实例初始化块中调用方法:实例方法
构造器标签:类型 str pre 实例初始化 float 代码 oid number tle
原文地址:http://www.cnblogs.com/kabi/p/6362841.html