关于对JVM的相关知识总结

以下的内容是自己看书和平时总结得来的,记录下,以便以后好复习
jvm的内存结构:jvm是按照运行时的存储结构来划分内存结构的。可以分为如下六种:
1.PC寄存器数据:用于保存当前正在执行的程序的内存地址。也就是记录着当前线程执行到了哪里。
2.Java栈:创建一个线程的时候就会创建一个对应的Java栈,一个栈中会含有多个栈帧,其中每创建一个方法就会创建一个栈帧,栈帧当中含有一些内部变量(方法内定义的变量),操作栈和方法返回值等信息。
3.堆:存储Java对象的地方,堆时被所有Java现成共享的,由此引出Java同步行问题。
4.方法区:存储类结构信息的地方,也就是我们通常说的Java堆的永久区。
5.运行时常量池:存储着运行时每个class文件中的常量表。主要包含:编译期的数字常量、方法或者域的引用
6.本地方法栈:jvm为运行native方法准备的空间。
二、 jvm体系结构
jvm的全称是Java虚拟机,它通过模拟一个计算机来达到一个计算机所具有的计算功能,jvm和实体机一样有一套适合它自己的指令集,这个指令集,我们成为jvm字节码指令集,符合class文件规范的字节码都可以被jvm执行。
jvm的基本结构:
1.类加载器:jvm启动时或类加载时将需要的class加载到jvm中。
2.执行引擎:负责执行class文件中包含的字节码指令。
3.内存区:将内存划分为若干区模拟实际机器上的存储、记录和调度功能模块。
4.本地方法调用,调用c或者c++实现的本地方法的代码返回结果。
jvm体系结构:
类加载器:在jvm启动时或者在类运行时将需要的class加载到jvm。
执行引擎:执行class文件中的包含的字节码指令,相当于机器上的cpu。
内存区:将内存区划分若干个区模拟实际机器上的存储、记录和调度功能模块。
本地方法调用:调用C或C++实现的本地方法的代码返回结果。
jvm工作机制:
jvm执行字节码指令时基于栈的架构, 执行Java部件的过程中:一般时,PC寄存器记录当前运行到代码的地址,操作栈通过弹入弹出元素进行处理,然后将结果压入栈顶, 运算结束后,pc寄存器销毁,方法对应的栈帧也对应消失。
三、JVM对代码的优化
JVM对代码的优化分为运行时优化(runtime)和 即时编译器优化(JIT)
运行时优化:主要是解释执行和动态编译通用的一些机制,如锁机制(偏斜锁)
即时编译器优化:将热点代码以方法为单位转换成机器码,直接运行在硬件之上

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值