
jvm从入门到放弃
文章平均质量分 93
picktheshy
知乎:https://www.zhihu.com/people/xun-jiu-zuo-huan
展开
-
5. 本地方法接口和本地方法栈
简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C中,你可以用extern “c” 告知c编译器去调用一个c的函数。在定义一个native method时,并不提供实现体(有些像定义一个Java interface),因为其实现体是由非java语言在外面实现的。原创 2023-09-03 20:11:46 · 250 阅读 · 0 评论 -
4. 虚拟机栈
数据安全问题●。原创 2023-09-03 13:58:22 · 321 阅读 · 0 评论 -
3. 运行时数据区及程序计数器
本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。原创 2023-08-28 19:08:46 · 257 阅读 · 0 评论 -
2.类加载子系统
● Class文件● 类加载子系统● 运行时数据区○ 方法区○ 堆○ 程序计数器○ 虚拟机栈○ 本地方法栈● 执行引擎● 本地方法接口● 本地方法库小记LV : local values 本地(局部变量表)OS: Operator Stack(操作数栈)DL : dynamic link(动态链接)RA : return address (方法返回地址)如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?● 类加载器● 执行引擎。原创 2023-08-22 21:13:38 · 157 阅读 · 0 评论 -
1.jvm和java体系结构
由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。时至今日,尽管嵌入式平台已经不是Java程序的主流运行平台了(准确来说应该是HotSpotVM的宿主环境已经不局限于嵌入式平台了),那么为什么不将架构更换为基于寄存器的架构呢?栈:跨平台性、指令集小、指令多;执行性能比寄存器差。原创 2023-08-21 23:20:41 · 902 阅读 · 0 评论