本帖最后由 廖理 于 2012-5-5 19:16 编辑
类的方法是类的对象所共有的,所以类的方法在对象创建时被加载进了内存中的方法区,这些方法代码块就可以被所有创建的此类对象共有,共同使用,而不用每个对象中都保存一份代码块,节省了内存空间。当类的对象调用的到该方法时,Jvm会自动在方法中找到对应的方法,然后再将该方法加载到栈中,执行该行法。
方法在调用时都要被加载如Static才能运行,Main方法是程序的入口,由JVm直接调用,而且他是一个静态方法,但主函数比较特殊,主方法会在构造器之前,static变量初始化之后调用,这是由于Java的惰性初始化,在main方法被调用之前无法知道是否存在主类的实例。所以他是先于对象而存在的,所以调用他之后,才会创建对象, ,当对象调用方法时,Jvm就自动将对应方法加载到Stack中运行,此方法完成后自动从Stack内存中消失,但是方法区方法代码依然存在。main方法完成后也会从Stack中消失,即整个程序结束了。
|