java 虚拟机的理解

来源:互联网 发布:91视频解析网站源码 编辑:程序博客网 时间:2024/04/30 12:56

 当运行"java  thb.java " 命令时,就启动了一个java虚拟机进程,java虚拟机进程会在类路径中,找到thb.java 源文件,读取源文件的二进制数据,并把二进制数据加载到内存中,放到运行内存中的方法区中。字节码验证器会验证加载字节码是否腐恶语法,然后解析器会解析字节码,最后初始化。 

 thb t=new thb(); java 虚拟机执行这条语句的步骤,1.搜索方法区,看方法区内是否有thb类的字节码,没有,加载字节码到方法区  2.在堆区中存放thb对象,该对象持有指向方法区内字节码的引用  3.栈中的变量t 引用堆区中的对象,它指向堆区中对象实例的引用。

 当执行对象的方法时,比如speak方法,当执行t.speak( )方法时,java虚拟机根据局部变量 t 持有的引用,定位到堆区中的thb实例,在根据thb实例持有的引用,定位到方法区中thb类的类型信息,从而获得speak()方法的字节码,接着执行speak()方法包含的指令。


0 0