摘要: 方法区 栈、堆、方法区的交互关系 从线程共享与否的角度看 从实际情况看 即: 类信息存储在方法区 实例对象信息放在Java堆区 引用放在Java栈区 方法区的理解 《Java虚拟机规范》:尽管在所有的方法区在逻辑上是属于堆的一部分,但是一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。 对于Ho 阅读全文
posted @ 2020-05-31 11:06 梦想成为DALAO 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 堆 知识点 多线程共享一个堆内存,且是最大的内存空间 Java内存管理的核心区域 在JVM启动的时候创建、大小确定(但是可以调节) 《Java虚拟机规范》规定:堆可以处于物理上不连续的内存空间中,当在逻辑上它应该被视为连续的 其实在堆中,存在线程私有的缓冲区 》Thread Local Alloca 阅读全文
posted @ 2020-05-27 22:28 梦想成为DALAO 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 本地方法 一个Native Method就是一个Java调用非Java调用非Java代码的接口。 native Method:该方法的实现由非Java语言实现,这种方法大多数并没有方法体,是由非Java语言在外面实现的 native可以与其它标识符连用,但是abstract除外 为什么使用Nativ 阅读全文
posted @ 2020-05-26 15:24 梦想成为DALAO 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 方法的调用 符号引用转换为直接引用 方法的早期过程 静态链接 早期绑定 当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译器可知,且运行期保持不变时。这种情况下将调用方法的符号引用转换为直接引用的过程称之为静态链接 总结:知道自己要调用什么东西叫作静态链接 动态链接 晚期绑定 被调用的 阅读全文
posted @ 2020-05-26 15:14 梦想成为DALAO 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 动态链接 每一个栈帧当中都包含以个指向运行时常量池重该栈帧所属方法的引用(invokedynamic指令) 在java源文件被编译到字节码文件中时,所有的变量和方法引用都作为符号引用保存在class文件的常量池里; 比如:描述一个方法调用的另外的其它方法时,就是通过常量池中指向该方法的符号引用来表示 阅读全文
posted @ 2020-05-26 14:10 梦想成为DALAO 阅读(1403) 评论(0) 推荐(1) 编辑
摘要: 栈顶缓存(Top-of-StackCashing)技术 基于栈式架构得虚拟机所使用的零地址指令更加紧凑,但完成一项操作的时候必然使用更多的入栈和出栈指令,这同时也就意味着将需要更多的指令分派次数和内存读写次数 由于操作数是存储在内存重的,因此频繁地执行内存读/写操作必然影响速度。 综上所述: JVM 阅读全文
posted @ 2020-05-26 13:59 梦想成为DALAO 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 操作数栈 (可以采用数组或者链表来实现) 先15、8进栈,执行+; 23进栈 15出栈 8出栈 知识点 后进后出的操作数栈,可以成为表达式栈 操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据或者提取数据,即入栈/出栈 如果被调动的方法带有返回值,其返回值会被压入当前栈帧的操作数栈中,并更新 阅读全文
posted @ 2020-05-26 13:52 梦想成为DALAO 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 局部变量表 又称:局部变量数组、本地变量表 定义一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量:基本数据类型、对象引用、以及returnAddress类型 局部变量表建立在线程的栈上,私有数据,不存在数据安全问题 局部变量表所需的容量大小是在编译器确定下来的,并保存在方法的Code属性 阅读全文
posted @ 2020-05-26 11:19 梦想成为DALAO 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 栈 栈与堆 栈是运行时的单位,而堆是存储的单位。 栈:解决程序的运行问题,即程序如何执行,或者说如何处理数据。 堆:解决的是数据存储的问题,即数据怎么放,放在哪儿。 Java虚拟机栈(Java Virtual Machine Stack),早期叫作Java栈。 每个线程在创建时都会创建一个虚拟机栈, 阅读全文
posted @ 2020-05-26 09:14 梦想成为DALAO 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 程序计数器 作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。供执行引擎读取下一条指令。其实就是1、2、3、4、...n的数字。 很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域 每个线程都有自己的程序计数器,私有,生命周期随线程生命周期 任何时间一个线程只有一个方法 阅读全文
posted @ 2020-05-25 22:42 梦想成为DALAO 阅读(189) 评论(0) 推荐(0) 编辑