初识jvm

标题一直想知道jvm的内部运作是怎样的,今天就想自己记录下来自己对jvm的认识

1.jvm概念

jvm是什么,根据英语单词的话就是 Java Virtual Machine,中文为java虚拟机,而java虚拟机就是运行在操作系统之上的,与硬件没有关系,jvm它包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域。

2.jvm的流程图

先在网上下载的要给流程图
在这里插入图片描述
因为java的文件并不够被机器识别,而是要进行编译为class文件才能够被机器所识别。所以jvm就是充当一个媒介,也就是jvm负责把java的源文件进行编译为class文件(就是把java编译为机器码之类的),而后再把class文件通过类加载器加载到内存中,而在jvm加载到内存之前,jvm会根据每一个平台的编译器进行编译成这个平台所要的机器码,所以这就是java为什么会支持跨平台操作了。

3.什么是字节码指令集

字节码指令集,在我的理解中就是i对应的就是int,f对应的就是float,d对应的就是double等等,当然,这只是对于与数据类型相关的一些,在数组之类的,就会编译为对象。

4.寄存器

它是存储速度最快的,位于处理器的内部,寄存器是由编译器来进行分配的,而开发人员不能够通过代码来进行操作。

5.栈

首先,栈的思想一般都是先进后出,在java中,有本地方法栈和虚拟机栈
5.1本地方法栈
与虚拟机栈的作用是一样的,只不过虚拟机栈是服务 Java 方法的,而本地方法栈是为虚拟机调用 Native 方法服务的;
5.2虚拟机栈
于存储局部变量表、操作数栈、动态链接、方法出口等信息;

6.垃圾回收

在java中,程序员是不需要手动释放内存的,而是由jvm去自动的释放内存,在虚拟机空闲或者堆内存不足时,就会触发垃圾回收

7.堆

堆在物理地址中,对象的内存分配是不连续的,堆中一般存储的是对象或者数组,一般静态的对象是在堆中。

总结

第一次了解jvm,还有很多不懂的地方,如果又啥问题,还望多多支持,互相进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值