
JVM
含泪写笔记
这个作者很懒,什么都没留下…
展开
-
执行引擎
一、执行引擎概述二、java代码编译和执行?1.什么是解释器什么是JIT编译器2.为什么说java是半编译半解释型语言?三、解释器四、JIT编译器JIT的分类原创 2021-08-25 23:36:16 · 76 阅读 · 0 评论 -
对象的实例化、内存布局与访问定位
一、对象的实例化二、对象的内存布局三、对象的访问定位原创 2021-08-25 23:16:06 · 73 阅读 · 0 评论 -
运行时数据区之方法区
一、方法区的理解方法区有个别名叫做Non-Heap(非堆),目的上就是要和堆区分开来,所以我们可以把方法区看作一块独立于堆的内存空间。在HotSpot中可以把永久代看作方法区的实现,JDK1.8后,元空间取代永久代元空间与永久代的区别?二、设置方法区的大小与OOMjdk1.7及以前(永久代)jdk1.8(元空间)内存泄漏(垃圾回收器不回收还有引用的对象,但是这个对象已经没有用了)与内存溢出会导致OOM三、方法区的内部结构一个类的Class文件被类加载器加载到内存中的方法原创 2021-08-25 22:59:39 · 155 阅读 · 0 评论 -
本地方法栈与堆的理解
一、本地方法栈1.什么是本地方法?2.为什么要使用本地方法?3.本地方法栈二、堆1.堆的核心概述2.堆的内部结构1.设置堆的大小:-Mms -Xmx2.年轻代和老年代3.对象分配过程4.TLAB(快速分配策略)5.小结对空间的参数设置6.堆是分配对象的唯一选择吗?...原创 2021-08-24 19:47:21 · 137 阅读 · 0 评论 -
运行时数据区之虚拟机栈
一、虚拟机栈概述1.内存中的栈与堆?2.虚拟栈的定义?二、虚拟机常见异常与如何设置大小?HotSpot虚拟机的栈容量是不允许动态扩展的设置大小?参数(-Xss)三、栈的存储结构和运行原理四、栈帧的内部结构1.局部变量表注意:1.非静态方法与静态方法在局部变量表的区别:非静态方法的局部变量表的第一个slot存储着this2.slot(变量槽)是可以重用的,前面的变量出了作用域2.操作数栈3.动态链接的理解4.方法的返回地址五、静态变量与局部变量的对原创 2021-08-23 22:24:02 · 82 阅读 · 0 评论 -
运行时数据区之程序计数器(PC寄存器)
一、运行时数据区内部结构概览二、程序计数器的作用对于当前线程的自己的程序计数器来说:程序计数器指向当前线程的执行地址对于执行引擎来说:某个线程的程序计数器指向下一个要执行的操作的地址...原创 2021-08-22 14:31:56 · 194 阅读 · 0 评论 -
JVM之类加载器
一、概述类的加载器及类的加载过程类的加载过程类的加载过程1.加载:主要是在内存中生成了类的Class对象2.链接:主要是为类变量分配内存并设置该类变量的默认初始值(0、null)3.初始化:执行类构造器方法()自动收集类变量的赋值动作和静态代码块类加载器Bootstrap类加载器没有继承Classloader加载器,而Extension类加载器和System类加载器间接继承了ClassLoder。1.Bootstrap类加载器2.扩展类加载器3.系统类加载器4原创 2021-08-21 11:24:05 · 110 阅读 · 0 评论 -
JVM课前准备
一、虚拟机与java虚拟机的介绍二、JVM的位置JVM与硬件无直接交互三、JVM的整体结构Class files是字节码文件四、Java代码的执行流程五、JVM的架构模型由于java编译器输入的指令流是基于栈的指令架构,不像寄存器架构还依赖与硬件(cpu不同),所以可以实现跨平台运行,可移植性好.六、JVM的生命周期...原创 2021-08-20 15:51:38 · 116 阅读 · 0 评论