
JVM
文章平均质量分 88
JVM学习笔记
鸭梨的药丸哥
文耀
展开
-
JMM中的happens-before
JMM中的happens-before概念设计的初衷程序员写代码时,是要求内存模型易于理解和易于编程,并且我们也希望程序能按照我们编写的代码一样,能按规则编写顺序执行。(强内存模型,即强规则的内存模型)对于编译器和处理器的实现来说,它们希望约束尽量少一些,所以编译器和处理器会对指令进行重排,让他们尽己所能的优化来提供性能。(弱内存模型)程序员希望JMM提供给我们一个强内存模型,而底层的编译器和处理器需要一个弱内存模型来提高自己的性能。所以JMM向我们程序员提供了足够强的内存可见性保证,只要不改转载 2021-08-10 01:51:36 · 162 阅读 · 0 评论 -
Java finalize()的使用
Java finalize()转载地址:java finalize方法总结、GC执行finalize的过程 - ScaleZ - 博客园 (cnblogs.com)finalize()介绍finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法,但Java中的finalize的调用具有不确定性。finalize()调用生命周期(1) 首先,大致描述一下finalize流程:当对象变成(GC Roots)不可达时,GC会判断该对象转载 2021-08-10 01:49:44 · 429 阅读 · 0 评论 -
JVM学习笔记(四)
JVM学习笔记(四)文章目录JVM学习笔记(四)1.GC算法1.1GC-判断对象是否可回收1.1.1 引用计数法1.1.1 可达性分析1.2GC-回收算法标记清除法(Mark-Sweep)标记整理法(Mark-Compact)复制算法(copy)1.2.1 分代收集算法(重点)1. 新生代和复制算法2. 老年代与标记整理算法分区收集算法2.GC垃圾收集器2.1 垃圾收集器的种类2.2 Serial垃圾收集器2.3 ParNew垃圾收集器2.4 Parallel Scavenge 收集器2.5 Serial原创 2021-03-14 14:02:39 · 612 阅读 · 0 评论 -
jvm学习笔记(三)
jvm学习笔记(三)文章目录jvm学习笔记(三)1.全部笔记链接2.堆2.1堆的划分使用JVM参数查看划分Hotspot堆内存划分图(JDK8之前)2.2 GC对堆的回收GC的种类MinorGC的过程MajorGC的过程(Old GC)Full GC2.3 一些调节参数3. OOM3.1 简介3.2 排错1.全部笔记链接(待更新)2.堆是被线程共享的一块内存区域,创建的对象和数组都保存在 Java 堆内存中,也是垃圾收集器进行垃圾收集的最重要的内存区域。由于现代 VM 采用分代收集算法, 因此原创 2021-03-14 13:52:00 · 427 阅读 · 0 评论 -
jvm学习笔记(二)
jvm学习笔记(二)文章目录jvm学习笔记(二)1.全部笔记链接2. Native关键字3.关于JVM规范3.1 JVM规范中运行时数据区的概念4.HotSpot的JVM运行时数据区4.1 JVM运行时数据区(HotSpot jdk1.7)4.2 JVM运行时数据区(HotSpot jdk1.8 )5. Java虚拟机栈5.1栈帧组成6.永久代的变化1.全部笔记链接(待更新)2. Native关键字作用Native关键字作用:调用底层C语言的库,也就是调用本地方法接口(JNI)JNI的作用:原创 2021-03-14 12:30:24 · 363 阅读 · 0 评论 -
jvm学习笔记(一)
jvm学习笔记(一)文章目录jvm学习笔记(一)1.全部笔记链接3.类加载器作用类别加载步骤获得类加载器4.双亲委派机制5.沙箱安全机制沙箱概念JAVA沙箱的基本组件基本组件的作用6.JAVA安全模型沙箱在JAVA安全模型中的应用域的概念临时扩大访问权限临时扩大访问权限1.全部笔记链接(待更新)3.类加载器作用加载.Class文件类别虚拟机自带的加载器启动类(根)加载器 rt.jar扩展类加载器 ExtClassLoader应用程序(系统类)加载器 AppClassLoader原创 2021-03-14 12:27:40 · 468 阅读 · 2 评论