JVM的个人学习理解记录

JVM即Java虚拟机。
先讲讲Java程序的实现,程序员写好Java程序进行编译,编译时会将Java文件编译成Java字节码(class文件),电脑再使用Java虚拟机将这个class文件进行解释成机器码并执行。其中不同操作系统的Java虚拟机不同,如Windows有windows 的Java虚拟机,Linux有Linux的Java虚拟机。

虚拟机的具体实现:
Java代码->编译->Java字节码(class文件)->执行 Java程序->java 根据系统版本找到jvm.cfg文件->再通过jvm.cfg找到相应的jvm.dll(jvm.dll为虚拟机的主要实现)->初始化jvm,并获取JIN接口(JIN为Java的本地接口,帮助查找class文件的硬盘存储位置)->将class文件转载到jvm中->找到mian方法执行。

JVM的基本结构:
JVM中包括了方法区,Java栈,本地方法栈,Java堆,PC寄存器,执行引擎,垃圾收集器,本地方法接口,本地方法库。其中:
方法区是线程共享的区域,存放类信息,常量和静态变量。

Java堆也是线程共享的区域,存放各种类的实例,若堆空间不够,会抛 出OutOfMemoryError异常。

Java栈是各个线程私有的,用于存储执行方法中的数据,每执行一个方法都会压入一个元素,元素中即保存着方法的数据,如局部变量等。

本地方法栈的作用和Java栈相同,但是它的方法是调用本地方法接口来使用本地方法库来与本地的操作系统和硬件沟通。

PC寄存器中存放的就是所有方法的执行顺序,执行引擎会跟随PC寄存器中的顺序进行执行。

垃圾收集器就是用来回收内存的。

Java虚拟机的出现,大大提升了Java代码的可移植性。

有错漏的地方请指出,谢谢。

这是我的学习参考链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值