java内存管理

一、什么是JVM?

jvm的核心功能:

1、软件层面的机器码翻译

java的特点是Write Once Run EveryWhere ,这个特点的实现依赖于不同类型的JVM。class文件运行时需要转换成机器识别的机器指令,而JVM在软层面上完成了从我们认识的指令到机器指令的转换。

2、内存管理

二、java运行时数据区



1、我们写一个类无非包含三种代码:数据代码(int i=1;),指令代码(i++;)和控制代码(return;);计算机底层的操作也主要包含三个方面:数据流、指令流、控制流。

2、程序计数器:指向当前线程正在执行的字节码指令的地址(行号)


java程序执行的最小单位是线程,每个线程都有自己的程序计数器。程序计数器的作用就在于当线程挂起时,记录当前线程执行到哪一步。

3、虚拟机栈:存储当前线程运行方法时所需要的数据,指令




虚拟机栈是每个线程独享的内存区域,一个栈帧对应一个方法,当方法运行时就会进行压栈。局部变量的宽度是32位。


4、操作数栈





如上图所示,通过javac -c -v命令查看java编译器为我们生成的字节码文件


将字节码文件输出到txt文件中。

可以通过查看字节码指令,查看代码运行的具体操作过程

5、动态链接

java中的方法在运行期间,确定要执行该方法的类。如java的运行时多态。

6、出口

方法运行结束时需要出栈。java的出口分为两种,正常出口(如return)和异常出口(如抛出异常,捕获异常)

7、本地方法栈

java中用native修饰的方法,通过C或者C++去实现

8、方法区
存储类信息,静态变量,常量,JIT(Just In Time简称JIT,IT的核心思想: 可概括为“在需要的时候,按需要的量生产所需的产品",如java动态生成的class文件)






1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下 4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值