JVM学习笔记
文章平均质量分 60
师从尚硅谷宋红康老师的JVM视频
晚上买菜
学生啦
展开
-
16_垃圾回收器
垃圾回收器GC分类及性能指标本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论GC分类及性能指标...原创 2021-04-03 17:01:50 · 148 阅读 · 0 评论 -
15_垃圾回收相关概念
垃圾回收相关概念System.gc()的理解内存溢出与内存泄漏内存溢出(OOM)内存泄漏(Memory Leak)Stop The World垃圾回收的并行与并发并发(Concurrent)并行(Parallel)垃圾回收的并行与并发安全点与安全区域安全点(SafePoint)安全区域(Safe Region)引用强引用软引用弱引用虚引用终结器引用本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多原创 2021-01-31 16:16:47 · 330 阅读 · 0 评论 -
14_垃圾回收相关算法
垃圾回收相关算法标记阶段:引用计数算法对象存活判断引用计数算法循环引用小结标记阶段:可达性分析算法(或根搜索算法、追踪性垃圾收集)GC Roots对象的finalization机制MAT与JProfiler的GC Roots溯源清除阶段:标记-清除算法清除阶段: 复制算法清除阶段:标记-压缩算法小结分代收集算法增量收集算法、分区算法分区算法本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论原创 2021-01-29 22:09:36 · 326 阅读 · 0 评论 -
13_垃圾回收概述
垃圾回收概述什么是垃圾为什么需要GC?早期垃圾回收Java垃圾回收机制本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论什么是垃圾为什么需要GC?早期垃圾回收Java垃圾回收机制担忧:perm区即元空间...原创 2021-01-21 19:10:46 · 146 阅读 · 0 评论 -
12_String Table
String TableString的基本特性String的内存分配String的基本操作字符串拼接操作intern()的使用StringTable的垃圾回收G1中的String去重操作本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论String的基本特性String:字符串使用一对""引起来表示String声明为final的,不可被继承String实现了Seriali原创 2021-01-21 17:16:41 · 250 阅读 · 1 评论 -
11_执行引擎
执行引擎执行引擎概述Java代码编译和执行的过程机器码、指令、汇编语言机器码指令指令集汇编语言高级语言解释器JIT编译器Java代码的执行分类:HotSpot JVM的执行方式概念解释热点代码及探测方式方法调用计数器回边计数器HotSpot VM中JIT分类本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论执行引擎概述执行引擎是Java虚拟机核心组成部分之一“虚拟机”是一个相对于“物原创 2021-01-19 20:44:46 · 86 阅读 · 0 评论 -
10_对象的实例化、内存布局与访问定位
对象的实例化、内存布局与访问定位对象实例化对象内存布局对象的访问定位直接内存(Direct Memory)本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论对象实例化对象内存布局对象的访问定位句柄访问:句柄访问的优点:直接指针(HotSpot使用):直接内存(Direct Memory)不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》原创 2021-01-19 11:16:09 · 93 阅读 · 0 评论 -
09_方法区
方法区栈、堆、方法区的交互关系方法区的理解设置方法区大小与OOM方法区的内部结构本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论栈、堆、方法区的交互关系方法区的理解可以把永久代和元空间理解成对于方法区接口的不同实现,对于hotspot而言,可以认为永久代或元空间就等价于方法区,其他虚拟机不一定有永久代的概念。设置方法区大小与OOM如何解决这些OOM?方法原创 2021-01-17 20:56:29 · 71 阅读 · 0 评论 -
08_堆
堆堆的核心概述内存细分堆空间内部结构(JDK7)堆空间内部结构(JDK8)设置堆内存大小与OOMOOM举例年轻代和老年代对象分配过程概述常用调优工具Minor GC、Major GC与Full GC堆空间分代思想内存分配策略为对象分配过程:TLAB小结堆空间的参数设置堆是分配对象存储的唯一选择吗?逃逸分析之代码优化栈上分配同步省略(消除)分离对象或标量替换小结本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之原创 2021-01-14 19:10:11 · 645 阅读 · 2 评论 -
07_本地方法栈
本地方法栈本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论原创 2021-01-10 17:02:06 · 100 阅读 · 1 评论 -
06_本地方法接口
本地方法接口本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论...原创 2021-01-10 17:00:19 · 68 阅读 · 0 评论 -
05_虚拟机栈
虚拟机栈虚拟机栈基本内容栈的存储单位栈运行原理栈帧的内部结构局部变量表本文是记录在尚硅谷学习java的一些笔记,因为刚开始写博客,可能大部分都是PPT的搬用,希望多多包涵,后续会继续更新,欢迎大家交流学习,如有不妥之处,欢迎多多评论虚拟机栈基本内容虚拟机栈出现的背景:由于跨平台性的设计,Java指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现;缺点是性能下降,实现同样的功能需要更多的指令。Java虚拟机栈是什么?Java虚原创 2021-01-10 16:28:43 · 227 阅读 · 0 评论 -
04_程序计数器(PC寄存器)
程序计数器(PC寄存器)PC寄存器介绍因为native方法不是java程序(C程序),所以不能执行。PC寄存器没有GC和OOM两个常见问题使用PC寄存器存储字节码指令地址有什么用?为什么使用PC寄存器记录当前线程的执行地址呢?(换个说法)PC寄存器为什么设计成线程私有?...原创 2021-01-07 22:53:23 · 141 阅读 · 0 评论 -
03_运行时数据区概述及线程
运行时数据区概述及线程灰色的为线程单独线程私有的,红色为多个线程共享的,即:每个线程:独立包括程序计数器、栈、本地栈线程间共享:堆、堆外内存(永久代或元空间、代码缓存)...原创 2021-01-07 20:34:19 · 76 阅读 · 0 评论 -
2_类加载子系统
类加载子系统类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)类加载过程加载:通过一个类的全限定名获取定义此类的二进制字节流将原创 2021-01-06 20:45:01 · 76 阅读 · 0 评论 -
JVM和Java体系结构
JVM和Java体系结构JVM的整体结构HotSpot VM是目前市面上高性能虚拟机的代表作之一它采用解释器与即使编译器并存的架构在今天,Java程序的运行性能早已脱胎换骨,已经达到了可以和C/C++程序一较高下的地步Java程序的执行流程JVM的架构模型Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。区别:基于栈式架构的特点:1、设计和实现更简单,适用于资源受限的系统;2、避开了寄存器的分配难题:使用零地址指令方式分配原创 2021-01-06 15:25:25 · 63 阅读 · 0 评论