首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
upjmbai5800
2019-08-11 10:08
已编辑
中国银联_技术开发中心_应用开发
关注
已关注
取消关注
JVM总结(2)
JVM总结(2)java内存区域、字节码执行引擎
1、内存区域
程序计数器:知道线程执行位置,保证线程切换后能恢复到正确的执行位置。
虚拟机栈:存栈帧。栈帧里存局部变量表、操作栈、动态连接、方法返回地址。局部变量表又存了各种基本数据类型和对象引用(句柄)。
本地方法栈:为Native方法服务
堆:存放对象实例和数组,可以处于物理上不连续的内存空间
方法区:存类信息、常量、静态变量。有运行时常量池,存放类的符号引用
堆主要用来存放对象,栈主要用来执行程序。
2、对象的创建
虚拟机遇到一条new指令时,会先去常量池检测能否找到new对应的类的符号引用,并检测这个类是否加载、初始化。
如果加载检查通过,则分配内存。分配内存有两种方式:⑴指针碰撞,针对连续内存区域;⑵空闲列表,针对不连续内存区域。
内存分配完之后,会对内存初始化零值,保证实例字段能在java代码不赋初值也能使用。
接下来对对象信息进行设置,把类的元数据信息、对象的哈希码、对象的GC分代年龄等信息存放在对象头之中。
最后执行用户的Init方法
3、对象的内存布局
分为三部分,对象头、实例数据、对齐填充
对象头:⑴对象自身运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁等。⑵类型指针,虚拟机通过这个来确定这个对象是哪个类的实例。⑶如果对象是一个Java数组,那么对象头中还必须有一块用于记录数组长度的数据。
实例数据:对象真正存储的有效信息,也是在程序代码中定义的各种类型的字段内容。
对齐填充:JVM要求对象的起始地址必须是8字节的整数倍,因此当对象实例数据没有对齐时,这部分来补全。
对象的访问定位
取决于虚拟机的实现而定,有“句柄”和“直接指针”两种方式
“句柄”的好处是,在对象被移动(垃圾回收时很普遍),只用修改句柄中的实例数据指针,而reference本身不用修改。
“直接指针”的好处是,速度更快,毕竟节省了一次指针定位的时间开销。由于对象的访问在Java中非常频繁,因此这部分开销节省下来也很可观。
JVM字节码执行引擎
字节码文件即类文件被加载后,就能送入执行引擎了:
输入:字节码文件
处理:字节码解析
输出:执行结果。
物理机的执行引擎是由硬件实现的,虚拟机的执行引擎由于自己实现的。
• 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。
• 每个栈帧都包括了一下几部分:局部变量表、操作数栈、动态连接、方法的返回地址 和一些额外的附加信息。
• 每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。
• 一个栈帧需要分配多少内存,不会受到程序运行期变量数据的影响,而仅仅取决于具体的虚拟机实现。在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧,与这个栈帧相关联的方法称为当前方法,执行引擎运行的所有字节码指令都只针对当前栈帧进行操作。
局部变量表:
一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量。以变量槽slot为单位,一个slot可以放32位数据类型,对于long\double占用2个slot。
操作数栈:
即用来存放操作数的栈结构,当一个方法刚开始执行的时候,这个方法的操作数栈是空的,在方法的执行过程中,会有各种字节码指令向操作数栈中写入和提取内容,也就是入栈和出栈的操作。
java虚拟机的解释执行引擎称为基于栈的执行引擎,其中所指的栈就是操作数栈。
动态连接:
运行期将相关的符号引用转换为直接引用
方法返回地址:
方法执行完成的结果值
方法调用:
解析方法的符号引用和确定方法的版本
方法的执行:
解释执行(通过解释器执行)
编译执行(通过JIT编译器产生本地代码执行)
基于栈的代码执行示例
下面我们用简单的案例来解释一下JVM代码执行的过程,代码实例如下:
使用javap指令查看字节码:
提示
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-04 18:37
北京邮电大学 Python
搜狐畅游一面
ai算法实习生2026.03.04,下午14:00,一面,线上,1h左右,都开摄像头了1.自我介绍2.多策略微调这个项目是什么类型的?在 910B3 服务器上微调Qwen-3-8B 模型,使用全量微调、lora 微调和 freeze 微调三个策略做对比,是自己为了学习模型微调自主开展的项目。3.这个项目最终成果和目的是什么?目的是提升模型在中文语义理解方面的能力,最终用中文逻辑推理、中文语理解、知识相关三个数据集完成了测试。4.可以举例说一下中文语言理解的实现过程吗?选用中文逻辑推理、中文语理解、知识方面的三个数据集,基于Qwen-3-8B 模型用三种微调策略训练后,用这三个数据集对模型进行中...
点赞
评论
收藏
分享
03-07 11:46
上海交通大学 算法工程师
拿互联网大厂 Offer,其实只有三件事
很多同学在准备找工作时,往往会陷入一种很努力但没有结果的状态。每天刷题、投简历、看面经、背八股,忙得不可开交,但最后面试结果却并不理想。其实从结果来看,拿到互联网大厂 offer,本质上只有三件事:方向定位 → 简历优化 → 面试复盘如果把这三件事做好,拿到 offer 的概率会显著提升。而很多同学的问题,其实就出在这三步没有做好。一、方向定位:最重要的事情只有一件在所有准备工作中,方向定位是最重要的一步。很多人找工作时的问题是:今天准备算法岗明天看看产品岗后天又去投数据分析看起来很努力,但其实效率非常低。因为不同岗位需要准备的内容完全不同:比如:算法岗项目深挖模型原理算法基础手写代码产品岗产...
运营必备题库
点赞
评论
收藏
分享
02-27 14:25
咸阳师范学院 运营
求简历指导
跪求各位大佬们的指导,目前秋招结束了0offer,投了很多大厂中厂都被拒绝了,想问问各位大佬们的建议
牛客52071342...:
不同的岗位,你得把不对口的内容删掉一些,优化一下,人家公司不管你有多少技能,他只看对他有用的技能,你得根据公司的需求简化简历
那些拿到大厂offer的...
点赞
评论
收藏
分享
02-26 23:04
已编辑
嵌入式软件开发
牛人们 嵌入式软件实习怎么找啊
我是大专生,最近想要找一份嵌入式软件的实习,boss海投只有10份要了简历,走了几家大厂内推,但是基本都没办法过简历初筛,求大家拷打拷打简历呜呜呜
开工第一帖
点赞
评论
收藏
分享
03-03 14:03
山东大学 嵌入式软件工程师
面试官问“RAG各模块的优化策略有哪些”,怎么回答?
说实话,这道题放在以前,我的反应都是:不就是向量数据库加个大模型吗?但我也清楚,如果真这么答,基本等于告诉我只会调API。真正的生产级RAG是一套精密的工程系统。今天把它拆成四个模块,帮你建立一套完整的面试作答框架。模块一:数据清洗与离线索引垃圾进,垃圾出。原始数据里混着乱码和格式错乱的PDF,模型不可能检索得准。语义分块是第一个优化点。过去按固定字符数切分(比如500字一段),经常把一句话拦腰截断,语义全丢。现在要根据标题、段落结构甚至用模型来判断断点,保证每个分块语义完整。进阶策略是父子块检索:把文档切成小碎块用于检索(精度高),但喂给模型时把它所在的父块一并带上(上下文全)。小块检索准,...
查看16道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
字节AI agent算法一面 好难啊
1.1W
2
...
百度后台开发实习一二三面面经
1.1W
3
...
游戏客户端面经及经历分享
3860
4
...
字节跳动 后台开发 一面
3627
5
...
AI-Agent 面试题汇总 - 大模型篇
3437
6
...
面试官视角聊聊:AI大模型岗从业务面到HR面全流程
3345
7
...
我怕自己努力了这么久,最后还是毕业即失业
3097
8
...
wxg 一面
2851
9
...
前端手写题太折磨了
2830
10
...
26年 如何快速入门大模型应用开发(个人认为的最快路线)
2727
创作者周榜
更多
正在热议
更多
#
今天你投了哪些公司?
#
13463次浏览
317人参与
#
哪一刻你对工作祛魅了?
#
4718次浏览
47人参与
#
神州信息求职进展汇总
#
4990次浏览
77人参与
#
春招 / 实习投递,你最焦虑的一件事
#
11718次浏览
234人参与
#
AI时代下,你的岗位要求有什么变化?
#
2516次浏览
54人参与
#
你感受到金三银四了嘛?
#
4902次浏览
44人参与
#
27届求职交流
#
28173次浏览
574人参与
#
如果给AI员工评绩效,我的答案是……
#
1218次浏览
43人参与
#
刚工作的你,踩过哪些坑?
#
1317次浏览
31人参与
#
26届求职交流
#
14417次浏览
377人参与
#
HR问:你期望的薪资是多少?如何回答
#
80957次浏览
690人参与
#
实习学不到东西正常吗?
#
2217次浏览
28人参与
#
虽然0面试,但今天___,夸夸自己
#
1033次浏览
28人参与
#
找工作,你都让AI帮你做什么?
#
1283次浏览
48人参与
#
今年找实习到底有多难?
#
4386次浏览
39人参与
#
春招前还要继续实习吗?
#
55235次浏览
302人参与
#
一起聊美团
#
344107次浏览
1886人参与
#
你觉得mentor喜欢什么样的实习生
#
52043次浏览
1013人参与
#
机械制造面试记录
#
321786次浏览
3167人参与
#
好未来求职进展汇总
#
32737次浏览
180人参与
#
三月的小目标
#
36482次浏览
641人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务