课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java编程开发是目前大多数软件开发项目都在使用的一款编程开发语言,下面我们就通过案例分析来了解一下,java编程虚拟机运行基础知识分享。
一、JVM虚拟机运行时数据区
Java虚拟机要运行字节码指令,就要先加载字节码文件,谁来加载,怎么加载,加载到哪里……谁来运行,怎么运行呢?
JVM在执行Java程序的过程中会把它所管理的内存分为若干个不同的区域,这些区域都有各自的用途。
1、程序计数器:可以看作是当前线程所执行的字节码的行号指示器(指示当前线程,所以是线程私有的),字节码解释器工作时需要通过改变这个程序计数器的值来选取下一条所需要执行的字节码指令,循环、跳转、异常处理、线程恢复等基础功能都要依赖它来完成。
2、JVM栈:描述的是Java方法执行的内存模型:每个方法在执行时都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接和方法出口等信息。每一个方法从调用直到执行完成的过程,就对应一个栈帧从虚拟机栈中入栈到出栈的过程。
3、本地方法栈:虚拟机栈执行的是Java方法(也就是字节码)服务,而本地方法栈则为虚拟机所使用到的Native方法服务。
4、堆:是被所有线程共享的一块区域,在虚拟机创建是创建,此内存的目的是存放对象实例,它也是垃圾收集器管理的主要区域。
5、方法区:也是所有线程共享的一块区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
方法区中有运行时常量池。
总结:JVM的功能模块主要包括类加载器、执行引擎和垃圾回收系统。
二、虚拟机字节码执行引擎
执行引擎找到main()这个入口方法,执行其中的字节码指令。
执行引擎处理过程:输入字节码文件,进行字节码解析的等效过程,输出执行结果。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。