Java类的加载以及对象的构造

Java程序的执行流程:


.java文件经过编译形成 .class文件,然后在不同的系统平台上进行运行。

流程:

①首先加载class文件,在栈内存中创建类对象,并对类中由static关键字声明的数据进行初始化并且只进行初始化一次

② new 类名() 在Java堆内存中分配空间

③执行所有方法外定义的变量的初始化

④执行构造器(不论变量放在哪儿,都会先于任意一个方法的执行前执行,包括构造方法,而构造方法是一个类必须会执行的方法,不需要显示的进行调用。同时,不论变量在哪儿分布,只要在方法外部,就一定先于方法初始化。

总体来说,调用构造方法的时候的执行顺序:执行顺序为:静态块,静态属性->非静态块,属性->构造器。

例子:

public class Person {  
      
    public Person(int id) {  
        System.out.println("person(" + id + ")");  
    }  
}  
  
class Build {  
      
    /*静态块*/  
    static{  
        System.out.println("this is static block!");  
    }  
    /*非静态块*/  
    {  
        System.out.println("this is non-static block!");  
    }  
    Person p1 = new Person(1);//------------1-----------  
  
    public Build() {  
        System.out.println("this is build's block!");  
        Person p2 = new Person(2);  
    }  
  
    Person p3 = new Person(3);  
  
    public static void main(String[] args) {  
        Build b = new Build();  
    }  
}  
this is static block!
this is non-static block!
person(1)
person(3)
this is build's block!
person(2)
阅读更多
个人分类: Java
上一篇约瑟夫环2
下一篇Java基础知识总结
想对作者说点什么? 我来说一句

JAVA反射机制与类的加载

2015年09月11日 455KB 下载

没有更多推荐了,返回首页

关闭
关闭