摘要: 局部变量表也称为局部变量数组或本地变量表,定义一个数字数组,主要用于存储方法参数和定义在方法体内的句柄变量,这些数据类型包括各类基本数据类型、对象引用以及returnAddress类型。 由于局部变量表是建立在线程的栈上,是线程的私有数据,所以不存在数据安全问题。 局部变量表所需要的容量大小是在编译 阅读全文
posted @ 2020-09-04 17:48 Eleanor123 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 参数值的存放总是在局部变量数组的index0开始的,到数组长度-1的索引结束。 局部变量表最基本存储单元是slot(变量槽),它存放编译期间可知的各种基本数据类型(8种)、引用类型(reference)、returnAddress类型。 在局部变量表里,32位以内的类型只占用1个slot(包括ret 阅读全文
posted @ 2020-09-04 17:31 Eleanor123 阅读(566) 评论(0) 推荐(0) 编辑
摘要: JVM直接对栈的操作有2个,即对栈帧的压栈和出栈,遵循“先进后出”、“后进先出”原则。 在一条活动线程中,一个时间点上,只会有一个活动的栈帧。在执行的方法的栈帧是有效的,该栈帧被称为当前栈帧(current frame),与当前栈帧对应的方法是当前方法(current method),定位这个方法的 阅读全文
posted @ 2020-09-04 17:17 Eleanor123 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 由于跨平台性设计,Java的指令都是根据栈来设计的。不同CPU架构不同,所以不能基于寄存器的。栈的优点就是跨平台、指令集小,编译器容易实现;缺点是性能下降,实现同样的功能需要更多的指令。 Java虚拟机栈(Java Virtual Machine Stack)早期叫Java栈,每个线程创建时都会创建 阅读全文
posted @ 2020-09-03 19:21 Eleanor123 阅读(166) 评论(0) 推荐(1) 编辑
摘要: 栈是运行时的单位,堆是存储的单位。栈解决程序的运行问题,即程序如何执行,如何处理数据;堆解决的是数据存储的问题,即数据怎么放,放到哪里。 阅读全文
posted @ 2020-09-03 18:50 Eleanor123 阅读(122) 评论(0) 推荐(1) 编辑
摘要: CPU时间片即CPU分配给多个程序的时间,每个线程被分配一个时间段,称作它的时间片。宏观上,我们可以同时打开多个应用程序,每个程序并行不悖,同时运行;微观上,由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行。 阅读全文
posted @ 2020-09-03 18:35 Eleanor123 阅读(894) 评论(0) 推荐(0) 编辑
摘要: JVM的PC寄存器是对物理PC寄存器的一种抽象模拟,JVM中的程序计数寄存器(program counter register),register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息,CPU只有把数据装载到寄存器才能运行。 PC寄存器用来存储指向下一条指令的地址,即将要执行的命令。 阅读全文
posted @ 2020-09-03 10:32 Eleanor123 阅读(263) 评论(0) 推荐(0) 编辑
摘要: Classloader类,它是一个抽象类,其后所有的类加载器都继承自classLoader(不包括启动类加载器) 获取classLoader的途径 1、获取当前类的classLoader Clazz.getClassLoader() 2、获取当前线程上下文的classLoader Thread.cu 阅读全文
posted @ 2020-09-02 19:24 Eleanor123 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 可以通过jconsole或者任何一个调试工具看到后台运行的很多线程,后台系统线程在Hotspot JVM里主要是以下几个: 虚拟机线程:这种线程的操作需要JVM达到安全点才出现,这些操作必须在不同线程中发生的原因是他们都需要JVM达到安全点,这样堆才不会变化。这种线程的执行类型包括“stop-the 阅读全文
posted @ 2020-08-30 18:16 Eleanor123 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。下图即为JVM运行时,数据区的结构: Java虚拟机定义了 阅读全文
posted @ 2020-08-30 17:59 Eleanor123 阅读(137) 评论(0) 推荐(1) 编辑