jvm:1.内存与垃圾回收篇
文章平均质量分 71
JVM:1.内存与垃圾回收篇
cailyn_
一学就废的程序媛
展开
-
17.垃圾回收器
垃圾回收器一、GC分类与性能指标1.1 垃圾回收器概述1.2 垃圾回收器分类1.3 评估GC的性能指标1.4 吞吐量(throughput)1.5 吞吐量vs暂停时间二、不同的垃圾回收器概述2.1 七款经典垃圾回收器2.2 与垃圾分代之间的关系2.3 垃圾收集器的组合关系三、Serial回收器:串行回收四、ParNew回收器:并行回收五、Parallel回收器:吞吐量优先六、CMS回收器:低延迟七、G1回收器:区域化分代式八、垃圾回收器总结九、GC日志分析十、垃圾回收器的新发展一、GC分类与性能指标1.原创 2021-05-31 10:34:58 · 42 阅读 · 0 评论 -
16.垃圾回收相关概念
垃圾回收相关概念一、System.gc()的理解二、内存溢出与内存泄漏2.1 内存溢出2.2 内存泄漏(Memory Leak)三、Stop The World四、垃圾回收的并行与并发4.1 并发4.2 并行4.3 并行与并发的对比4.4 垃圾回收的并行与并发五、安全点与安全区域5.1 安全点(safepoint)5.2 安全区域六、强引用6.1 再谈引用6.2 引用分类6.3 强引用-不回收6.4 强引用的特点七、软引用7.1 软引用-内存不足即回收八、弱引用8.1 弱引用(weak reference)原创 2021-05-27 11:10:27 · 56 阅读 · 0 评论 -
15.垃圾回收的相关算法
垃圾回收的相关算法一、标记阶段:引用计数算法1.1 对象是否存活1.2 引用计数算法二、标记阶段:可达性分析算法2.1 介绍2.2 GC Roots三、对象的finalizationg机制3.2 对象的三种状态四、MAT与JProfiler的GC Roots溯源4.1 MAT介绍五、清除阶段:标记-清除算法六、清除阶段:复制算法七、清除阶段:标记-压缩算法八、小结九、分代收集算法十、增量收集算法、分区算法一、标记阶段:引用计数算法1.1 对象是否存活1.2 引用计数算法python使用的引用计原创 2021-05-26 15:30:46 · 34 阅读 · 0 评论 -
14.垃圾回收概述
垃圾回收概述一、 什么是垃圾1.1 概念二、 为什么需要GC三、 早期垃圾回收四、 java垃圾回收机制一、 什么是垃圾1.1 概念垃圾是指:在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。二、 为什么需要GC如果不进行垃圾回收,内存迟早会被消耗完,因为不断的分配内存空间而不进行回收,就好像不停的生产生活垃圾而从来不打扫一样。原创 2021-05-24 15:16:24 · 41 阅读 · 0 评论 -
12.执行引擎
执行引擎一、执行引擎概述1.1 介绍1.2 执行引擎的工作过程二、 java代码编译和执行过程2.1 什么是解释器2.2 什么是即时编译器2.3 为什么说java是半编译半解释型语言?三、 机器码、指令、汇编语言3.1 机器码3.2 指令3.3 指令集3.4 汇编语言3.5 高级语言3.6 字节码四、 解释器4.1 解释器工作机制五、 JIT编译器一、执行引擎概述1.1 介绍执行引擎是java虚拟机核心的组成部分之一“虚拟机”是相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的原创 2021-05-19 11:41:42 · 57 阅读 · 0 评论 -
10.对象的实例化、内存布局与访问定位
对象的实例化、内存布局与访问定位一、 对象的实例化二、 对象的内存布局三、 对象的访问定位一、 对象的实例化二、 对象的内存布局三、 对象的访问定位原创 2021-05-18 14:34:02 · 36 阅读 · 0 评论 -
9.方法区
方法区一、堆、栈、方法区的交互关系1.1 从线程共享角度1.2二、方法区的理解2.1方法区的基本理解三、设置方法区大小与OOM3.1 设置方法区大小3.2 如何解决OOM四、 方法区的内部结构4.1方法区存储什么?4.2 类型信息4.3 域信息4.4 方法信息五、方法区使用举例六、 方法区的演进细节七、 方法区的垃圾回收八、 总结一、堆、栈、方法区的交互关系1.1 从线程共享角度1.2二、方法区的理解2.1方法区的基本理解方法区是独立于堆的内存空间方法区(Method Area)与ja原创 2021-05-17 15:16:50 · 60 阅读 · 0 评论 -
8.堆
堆一、堆的核心概述1.1 介绍1.2 栈-堆-方法区 关系图1.3 堆空间的内存细分1.4 堆空间内部结构二、设置堆内存大小与OOM2.1 设置堆空间大小的参数2.2 默认堆空间的大小三、年轻代与老年代四、图解对象分配过程五、Minor GC、Major GC、Full GC六、堆空间分代思想七、内存分配策略八、为对象分配内存:TLAB九、小结堆空间的参数设置十、堆是分配对象的唯一选择吗?一、堆的核心概述1.1 介绍一个JVM实例只存在一个堆内存,堆也是java内存管理的核心区域java堆区在j原创 2021-05-14 18:29:41 · 53 阅读 · 0 评论 -
7.本地方法栈
本地方法栈一、 介绍一、 介绍 java虚拟机栈用于管理java方法的调用; 而本地方法栈用于管理本地方法的调用。本地方法栈也是线程私有的允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,java虚拟机将会抛出一个StackOverflowError异常如果本地方法栈可以扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么java虚拟机将会抛出一个OutOf原创 2021-05-13 14:17:12 · 75 阅读 · 0 评论 -
6.本地方法接口
本地方法接口一、介绍一、介绍原创 2021-05-13 09:55:02 · 36 阅读 · 0 评论 -
5.虚拟机栈
虚拟机栈一、虚拟机栈概述1.1 虚拟机栈出现的背景1.2 虚拟机栈的优缺点1.3 内存中的栈与堆二、 栈的存储单位三、 局部变量表四、 操作数栈五、代码追踪六、栈顶缓存技术七、动态链接八、方法的调用:解析与分派九、方法返回地址十、一些附加信息十一、栈的相关面试题一、虚拟机栈概述1.1 虚拟机栈出现的背景由于跨平台的设计,java的指令都是根据栈来设计的。不同平台cpu架构不同,所以不能设计为基于寄存器设计的。1.2 虚拟机栈的优缺点1.优点:跨平台,指令集小,编译器容易实现;2.缺点:性能下原创 2021-05-12 18:17:36 · 646 阅读 · 1 评论 -
4.程序计数器(PC寄存器)
程序计数器(PC寄存器)一、PC Register介绍2.1 程序计数寄存器:2.2 作用二、举例说明三、两个常见问题3.1 问题一3.2 问题二3.3 cpu时间片一、PC Register介绍2.1 程序计数寄存器:1.是一块很小的内存空间,几乎可以忽略不计2.是运行速度最快的存储区域3.在jvm规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致4.任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。5.程序计数器会存储当前线程正在执行的jav原创 2021-05-10 17:54:53 · 541 阅读 · 0 评论 -
3.运行时数据区概述及线程
运行时数据区概述及线程一、概述1.1 内存1.2 图片红黑区域线程区别1.3 线程间共享说明二、线程2.1 线程概述2.2 虚拟机线程一、概述1.1 内存内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。jvm内存布局规定了java在运行过程中内存申请、分配、管理的策略,保证了jvm的高效稳定运行。不同的jvm对于内存的划分方式和管理机制存在着部分差异。结合jvm虚拟机规范,来探讨一下经典的jvm内存布局。必须要会画的图:1.2 图片红黑区域线原创 2021-05-10 16:21:49 · 50 阅读 · 0 评论 -
2.类加载子系统
类加载子系统1. 内存结构概述2. 类加载器2.1 类加载器2.2 类加载器角色3. 类的加载过程3.1 过程一:loading3.2 过程二:Linking3.3 过程三:initialization4. 类加载器分类4.1 启动类加载器4.2 扩展类加载器4.3 应用程序类加载器4.4 用户自定义类加载器5. 关于ClassLoader类5.1常用方法:5.2 继承关系5.3 获取ClassLoader的方法6. 双亲委派机制6.1 工作原理6.2 优势7. 沙箱安全机制8. 其他8.1 判断两个类是原创 2021-05-08 18:45:03 · 63 阅读 · 0 评论 -
1.jvm与java体系结构
虚拟机与java虚拟机介绍一. 虚拟机二. java虚拟机2.1 介绍2.2 作用2.3 特点2.4 jvm的位置2.5 jvm的整体结构2.6 java代码的执行流程2.7 jvm的架构模型基于栈式架构的特点基于寄存器架构的特点一. 虚拟机所谓虚拟机就是一台虚拟的计算机,它是一款软件,用来执行虚拟计算机指令。大体上,可以分为系统虚拟机和程序虚拟机。大名鼎鼎的visual box,VMware就属于系统虚拟机,他们完全就是对物理计算机的仿真,提供了一个可运行的完整操作系统的软件平台。程序虚拟机的原创 2021-05-08 14:16:36 · 74 阅读 · 1 评论