Loading

摘要: 1.栈帧的内部结构 每个栈帧中存储着: 局部变量表(Local Variables) 操作数栈(Operand Stack)(或表达式栈) 动态链接(Dynamic Linking)(或指向运行时常量池的方法引用) 方法返回地址(Return Address)(或方法正常退出或者异常退出的定义) 一 阅读全文
posted @ 2021-06-08 21:23 niulongwei 阅读(1696) 评论(0) 推荐(2) 编辑
摘要: 1.简介 1.1 虚拟机栈的出现背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的CPU架构进行优化,但是跨平台性大大降低】。 它的优点是跨平台,指令集小,编译器容易实现, 阅读全文
posted @ 2021-06-08 21:13 niulongwei 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1.结构图 在说本地方法栈之前先要了解一下本地方法接口 2.本地方法接口介绍 简单地讲,一个Native Method(本地方法)是一个Java调用非Java代码的接囗,该方法的实现并非是Java语言实现的,而是调用的别的语言所实现的,例如C语言。这个特征并非Java所特有,很多其它的编程语言都有这 阅读全文
posted @ 2021-06-02 16:13 niulongwei 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 1.运行时数据区图 运行时数据区是在类加载完成后所经历的阶段,当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,执行引擎就会对类进行使用,这时就用到了运行时数据区。 举例来说,类的加载过程就好像是买菜的过程,经过一系列奔波,从购买到检验,最后再送 阅读全文
posted @ 2021-06-01 21:06 niulongwei 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 类加载子系统 1.JVM内存结构图 注意:方法区是Java虚拟机规范规定的区域,只不过各家虚拟机对方法区有不同的实现;HotSpot最开始用永久代来实现方法区,垃圾回收也会兼顾此区域,但是永久代实现的方法区有不少的问题,如容易内存溢出,回收效率低下等,HotSpot在1.8开始采用元空间来实现方法区 阅读全文
posted @ 2021-05-31 08:39 niulongwei 阅读(417) 评论(2) 推荐(0) 编辑
摘要: 1.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Jav 阅读全文
posted @ 2021-05-31 08:31 niulongwei 阅读(78) 评论(0) 推荐(0) 编辑