一直以来对我们编写的类如何加载金JVM不是很清楚,然后今天对一个非常简单的程序进行调试的时候自己分析了下。
源码如下:
我只是很简单的写了一个Person类,这个类什么都没写,都是用JVM默认的。
首先Eclispe在我的电脑上打开了5099号端口,而且还开启了一个线程Thread【main】,说明为我们的main函数开启主线程。当我单步跳入的时候,发现光标调到public class Person {行上,说明当JVM加载java文件的时候,最开始的时候并不是寻找类,而是直接奔着main函数去的,在main函数内见到了Person的时候,才会去寻找对应的类,然后,程序就跳转到了Object类文件了,这也说明任何类都默认继承于Object类的说法了。因为我在写Person类的时候并没有为该类写构造函数,因此他会采用JVM默认的构造方法,然后在默认的构造方法调用隐含的super();去调用父类Object的构造方法进行初始化了了。
这只是其中一种情况比较简单的情况。