参考:《深入理解JAVA虚拟机》第二版 3.3 垃圾收集算法 由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,只是介绍几种算法的思想及其发展过程。 3.3.1 标记 清除算法 最基础的收集算法是“标记 清除”(Mark Sweep)算法。 算法分为 标记和清除 ...
分类:
编程语言 时间:
2019-11-23 20:03:35
阅读次数:
88
参考自《深入理解JAVA虚拟机》第二版 第2章 Java内存区域与内存溢出异常 2.1 概述 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,由虚拟机管理内存这 一切看起来都很美好 ,一旦出现 内存泄漏和溢出方面 的问题,如果 ...
分类:
其他好文 时间:
2019-11-23 19:50:47
阅读次数:
69
这篇博客主要摘自《深入理解Java虚拟机 JVM高级特性与最佳实践》,写这篇博客最初的目的是为了准备期末Java考试关于JVM的几个问题,看了这本书几章节后感觉收获匪浅,对JVM的一些结构有了一些了解。 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都 ...
分类:
其他好文 时间:
2019-11-23 19:49:20
阅读次数:
55
JavaGC的相关知识点在《深入理解JAVA虚拟机》上比较琐碎,有的概念没有详细介绍,前后顺序也不太连贯。为了便于理解原理和问题排查,反复阅读了这一部分及相关文章后简单的总结一下。
思想脉络是:JVM内存模型->内存模型中的堆的进一步分代->GC回收算法、日志、回收器,从一个面(内存模型)到一个点... ...
分类:
编程语言 时间:
2019-11-22 19:08:34
阅读次数:
94
前言 本来想着关于写JVM这个专栏,直接写知识点干货的,但是想着还是有必要开篇讲一下为什么要学习JVM,这样的话让一些学习者心里有点底的感觉比较好... 原因一:面试 不得不说,随着互联网门槛越来越高,JVM知识也是中高级程序员阶段必问的一个话题!现在不像以前了,以前会点 都好找工作,现在由于学习软 ...
分类:
编程语言 时间:
2019-11-13 15:54:44
阅读次数:
91
Java 中语法上实现多态的方式分为两种:1. 重载、2. 重写,重载又称之为编译时的多态,重写则是运行时的多态。 那么底层究竟时如何实现多态的呢,通过阅读『深入理解 Java 虚拟机』这本书(后文所指的书,如无特殊说明,指的都是这本书),对多态的实现过程有了一定的认识。以下内容是对学习内容的记录, ...
分类:
编程语言 时间:
2019-11-07 23:09:51
阅读次数:
107
引用计数法高效率,但无法解决循环引用的问题,Python语言在使用可达性分析主流商用程序语言在使用,比如C#,Java,以及Lisp。通过一系列被称为GC Roots的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连,对象不可达的,则证... ...
分类:
编程语言 时间:
2019-10-21 09:46:59
阅读次数:
86
1.《深入理解Java虚拟机:JVM高级特性与最佳实践》本书适合所有Java程序员、系统调优师和系统架构师阅读。 共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。 电子版: 2.《Redis 深度历险:核心原理与 ...
分类:
编程语言 时间:
2019-10-05 11:02:20
阅读次数:
111
参考资料:GC算法分类-https://zhuanlan.zhihu.com/p/41666328 《深入理解java虚拟机》第三章垃圾收集器与内存分配策略 一:GC分代--新生代跟老年代 gc活动空间为堆区域,堆按gc处理方式也可以分为新生代跟老年代。 对象内存分配跟使用的垃圾收集器有关,默认是在 ...
分类:
编程语言 时间:
2019-09-15 17:08:04
阅读次数:
110
1、什么是类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚 机外部实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的模块称为“类加载器”。 周志明. 深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 机械工业出 ...
分类:
其他好文 时间:
2019-09-05 13:46:35
阅读次数:
85