读书笔记
文章平均质量分 94
精致先生
毕业于西安科技大学物联网工程专业,专注Java后台开发,是一位有梦想的社会青年
展开
-
深入理解Java虚拟机—03:回收对象、回收方法区
第3章 垃圾收集器与内存分配策略 概述 为什么要去了解GC(Garbage Collection,垃圾收集)和内存分配? 帮助我们排查各种内存溢出、内存泄露问题。 当垃圾收集成为系统达到更高并发了的瓶颈时,需要对它们实施必要的监控和调节。 垃圾收集和内存回收都是针对Java堆和方法区来说的。因为程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,当方法结束或线程结束时,内...原创 2019-04-10 22:53:31 · 203 阅读 · 0 评论 -
深入理解Java虚拟机—04:垃圾收集算法
垃圾收集算法 由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,因此,本节不打算过多的讨论算法的实现,只介绍几种算法的思想。 一、标记 -清除算法 算法思想: “标记 - 清除”(Mark-Sweep)算法,分为 “标记” 和 “清除” 两个阶段: 首先标记出所有需要回收的对象,标记过程其实就是上一节回收对象的标记判定方式; 在标记完成后统一回收...原创 2019-04-11 17:03:05 · 108 阅读 · 0 评论 -
深入理解Java虚拟机—05:虚拟机如何去发起内存回收?
虚拟机是采用主动式中断,使所有线程跑到一个被叫做安全点的地方 停顿下来开始GC,保证了GC过程可达性分析的准确性;同时使用 安全区域这种方式,跳过那些没有正在执行的线程,避免GC等待。 为什么 GC进行时必须停顿所有Java执行线程(Stop The World)? GC进行,意味着要回收一些不可用对象,而回收对象需要进行可达性分析(第一次标记),分析时,需要从 GC Roots 节点找...原创 2019-04-13 15:42:14 · 136 阅读 · 0 评论 -
深入理解Java虚拟机—01:运行时数据区域
第2章 Java内存区域与内存溢出异常 运行时数据区: 线程共享:方法区、堆。 (生命周期随着虚拟机进程的启动而存在) 线程私有:虚拟机栈、本地方法栈、程序计数器。 (生命周期与线程相同) 1.方法区(Method Area) 存储内容:用于存储已被虚拟机加载的类信息(类名、访问修饰符)、类中的静态变量、类中定义的final常量、类中的Field信息、方法、即时编译...原创 2019-04-10 22:52:11 · 139 阅读 · 0 评论 -
深入理解Java虚拟机—02:Java堆中的对象
一、对象的创建过程 1.虚拟机遇到一条new指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 2.在类加载检查通过后,虚拟机将为新生对象分配内存。等同于把一块确定大小的内存从Java堆中划分出来。假设Java堆中内存是绝对规整的,采用 “指针碰撞” 的分配方式;如果内存并不规...原创 2019-04-10 22:52:39 · 181 阅读 · 0 评论 -
深入理解Java虚拟机—06:内存回收如何进行
垃圾收集器 如果说 收集算法 是内存回收的方法论,那么 垃圾收集器 就是内存回收的具体实现。 下面会介绍7种作用于不同分代的收集器,它们之间有些还可以两两搭配使用。重点分析 CMS 和 G1 收集器。 一、Serial 收集器 特点: 单线程收集器。只会使用一个CPU或一条收集线程去完成垃圾收集工作。 垃圾收集时,必须暂停其他所有的工作线程,直到收集结束。(“Stop Th...原创 2019-04-13 22:13:43 · 142 阅读 · 0 评论 -
深入理解Java虚拟机—07:内存分配规则
自动内存管理,最终可归结为自动:给对象分配内存 以及回收分配给对象的内存。 内存分配规则: 1.对象优先在Eden分配 大多数情况下,对象在新生代 Eden 区中分配。当 Eden 区没有足够的空间进行分配时,虚拟机将发起一次 Minor GC。如果GC期间虚拟机又发现已有对象无法全部放入另一个 Survivor 空间,就会通过分配担保机制转移到老年代。 Minor GC 和 Full ...原创 2019-04-13 23:33:45 · 134 阅读 · 0 评论 -
互联网轻量级SSM框架解密—01:
第一章 Spring基础介绍 Spring的核心结构: 主要分为 8 大模块, 每一模块包含的子模块、及功能 第二章 Spring上下文和容器 Core Container模块是Spring架构的根基,核心概念是 BeanFactory,让Spring成为一个容器,帮助管理Bean Context模块,让Spring成为一个可执行框架,是 BeanFactory的实现者,主...原创 2022-01-06 22:52:24 · 508 阅读 · 0 评论