相信学java的人都对new Object();创建对象都很熟悉,但想要真正了解原理就没那么容易!以以下例子为例,解释class代码及执行过程,如有错误,还望各位高手多多指教!
帧的创建如下所示:
class文件格式如下:
程序计数器(pc):每一个Java线程都有一个程序计数器来用于保存程序执行到当前方法的哪一个指令,对于非Native方法,这个区域记录的是正在执行的VM原语的地址,如果正在执行的是Natvie方法,这个区域则为空(undefined)。
程序计数器 例子和图就拿现成的了,直接引用同事的
接下来来看一个例子,源代码如下:
如上代码很简单,main方法加上try catch只是为了 让大家看一下java文件生产字节码是怎么样的
执行javac Dog.java文件,生成class文件。然后使用javap -verbose Dog反编译出class代码。
生成如下代码: