jvm的工作流程
1,装载
描述;java虚拟机装载指定的class文件
结果;形成这个class类的实例对象
过程;java虚拟机使用类装载器定位到相应的class文件,然后读取这个class文件,将他传入java虚拟机中,紧接着虚拟机读取其中的类型信息,还有一个重要的东西就是常量池,将这些信息保存在一个叫做方法取得地方,最终形成class类的实例,这个实例存放在内存的堆区,它形成了java程序与内部数据结构之间的接口,程序要访问该类型的信息,程序就调用该类型对应的class实例对象的方法,简而言之,这个过程就是把一个类型的二进制数据解析为方法去中的内部数据结构,并在堆上建立一个class对象的过程。
2,连接
描述;验证,准备,解析(可选)
结果;
过程;
1)验证;确定类型符合java语言的语义,确保在类型和超类之间没有不兼容的方法声明
2)准备;java虚拟机为类变量分配内存,设置默认值
3)解析;在类型的常量池中寻找类,接口,字符和方法的符合引用把这些符号引用替换成直接引用的过程