| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java核心机制之JVM篇 -> 正文阅读 |
|
[Java知识库]Java核心机制之JVM篇 |
一、JVM虚拟机是什么? ? ? ? ? JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。 ????????对于不同的平台,有不同的虚拟机。Java语言的可移植性就是基于JVM,任何平台只要装有针对于该平台的JVM,字节码文件(.class)就可以在该平台上运行。也就是“一次编译,处处运行”。 二、JDK、JRE、JVM之间的关系 ? ? ? ? 1、JDK,java开发工具包,是提供给java开发人员使用的,其中包含了java相关的开发工具,如编译工具(javac.exe)、打包工具(jar.exe)等等,也包含了JRE。 ? ? ? ? 2、JRE,java运行环境,包括JVM虚拟机和java程序所需的核心类库等,如果只是想运行一个开发完成的java程序,只需要安装JRE即可。 ????????总体来说它们之间的关系即:JVM ? JRE ? JDK 三、JVM的运行位置 ? ? ? ? ?{?用户user ? ? ? ? ? ? ? ? ? ? ? ? ?字节码文件 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?JVM ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?操作系统 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 硬件 } ????????(有时间做个图补上) 四、JVM的基本结构 ? ? ? ? ? ? ? ? 方法区 Method Area? ? ? ? ? ? 虚拟机栈?Stack ? ? ? ? ? ? ? 本地方法栈?Native Method Stack ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? 堆 Heap? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?程序计数器?Program Counter Register ??????????????(后续补图) 1、方法区:用于存储运行时常量池、已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。 2、堆:在虚拟机启动时创建,用于存储对象实例,也是发生GC的主要区域。堆内的分区有,新生代、老年代、永久代(java8取消了永久代)。其中新生代包含了Eden区和Survivor区,Survivor区里面又分为From区和To区。 3、虚拟机栈:是线程私有的,它的生命周期与线程相同,随线程而生,随线程而灭。每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧,每一个方法被调用直至执行完毕的过程,就对应这一个栈帧在虚拟机栈中从入栈到出栈的过程。栈帧用于存储局部变量表、操作数栈、动态链接、方法返回值(地址)和一些附加信息。 4、本地方法栈:与虚拟机栈相似,它们之间的的区别不过是虚拟机栈为虚拟机执行java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用的Native方法服务。 5、程序计数器:用于记录当前线程所执行到的字节码的行号,也就是当前线程执行到的内存地址。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 21:42:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |