![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【JVM】上篇--内存管理与垃圾回收
文章平均质量分 86
怦然心动CC
这个作者很懒,什么都没留下…
展开
-
第八章.堆
目录1.堆的核心概念堆内存细分2.设置堆内存大小与OOMOutOfMemory举例3.年轻代与老年代4.图解对象分配过程概念图解过程思考:幸存区区满了后?对象分配的特殊情况代码演示对象分配过程常用的调优工具总结5.MinorGC,MajorGC、FullGC年轻代GC(Minor GC)触发机制老年代GC(Major GC)触发机制Full GC触发机制GC 举例6.堆空间分代思想7.内存分配策略8.为对象分配内存:TLAB问题:堆空间都是共享的么?为什么有TLAB?什么是TLABTLAB对象分配过程9.小原创 2021-03-15 20:59:40 · 122 阅读 · 0 评论 -
第七章.本地方法栈
Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackoverflowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个outofMemoryError异常。本原创 2021-03-15 20:14:36 · 56 阅读 · 0 评论 -
第六章.本地方法接口
目录1.什么是本地方法接口2.为什么使用Native Method?与Java环境的交互与操作系统的交互Sun's Java3.现状1.什么是本地方法接口简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern “c” 告知c++编译器去调用一个c的函数。“A native method原创 2021-03-15 20:12:28 · 62 阅读 · 0 评论 -
第五章.虚拟机栈
目录1.虚拟机栈概述Java虚拟机栈是什么生命周期作用栈的特点开发中遇到哪些异常?设置栈内存大小2.栈的存储单位栈中存储什么?栈运行原理栈帧的内部结构3.局部变量表关于Slot的理解Slot的重复利用静态变量与局部变量的对比4.操作数栈概念代码追踪5.栈顶缓存技术6.动态链接7.方法调用:解析与分配链接静态链接动态链接绑定机制早期绑定晚期绑定早晚期绑定的发展历史虚方法和非虚方法普通调用指令:动态调用指令:invokednamic指令动态类型语言和静态类型语言方法重写的本质Java 语言中方法重写的本质:Il原创 2021-03-13 00:17:44 · 140 阅读 · 0 评论 -
第四章.程序计数器
程序计数器介绍作用代码演示使用PC寄存器存储字节码指令地址有什么用呢?PC寄存器为什么被设定为私有的?CPU时间片介绍JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且也不容易引起一些不必要的误会。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。原创 2021-03-12 23:10:51 · 190 阅读 · 0 评论 -
第三章.运行时数据区概述及线程
运行时数据区概述及线程前言线程JVM系统线程前言本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品内存是非常重要的系统资源,是硬盘和CPU的中原创 2021-03-12 23:04:23 · 70 阅读 · 0 评论 -
第二章.类加载子系统
类加载子系统概述类加载器子系统作用类的加载过程加载阶段加载class文件的方式链接阶段验证Verify准备Prepare解析Resolve初始化阶段类加载器的分类虚拟机自带的加载器启动类加载器(引导类加载器Bootstrap ClassLoader)扩展类加载器(Extension ClassLoader)应用类加载器(系统类加载器AppClassLoader)用户自定义类加载器查看根加载器所能加载的目录关于ClassLoader双亲委派机制工作原理双亲委派机制举例沙箱安全机制双亲委派机制的优势其它如何判断原创 2021-03-03 11:14:13 · 70 阅读 · 0 评论 -
第一章.JVM与Java体系结构
JVM与Java体系结构前言架构师每天都在想什么?为什么学习JVM?Java vs c++推荐书籍Java生态圈字节码多语言混合编程Java发展中的重大事件虚拟机与Java虚拟机虚拟机Java虚拟机JVM的位置JVM整体结构Java代码执行流程JVM的架构模型举例字节码反编译总结栈JVM生命周期虚拟机的启动虚拟机的执行虚拟机的退出JVM发展历程Sun Classic VMExact VMHotSpot VMJRockitIBM的J9KVM和CDC / CLDC HotspotAzul VMLiquid VM原创 2021-03-02 21:54:14 · 274 阅读 · 0 评论