![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 94
分析java运行环境JDK
心灵彼岸-诗和远方
对一个程序员来说数据结构与算法是内功,各种技术就是招式,只有并驾齐驱方可到达巅峰!
展开
-
Java中9种常见的CMS GC问题分析与解决
Java中9种常见的CMS GC问题分析与解决 目前,互联网上 Java 的 GC 资料要么是主要讲解理论,要么就是针对单一场景的 GC 问题进行了剖析,对整个体系总结的资料少之又少。前车之鉴,后事之师,美团的几位工程师历时一年多的时间,搜集了内部各种 GC 问题的分析文章,并结合个人的理解做了一些总结,希望能起到“抛砖引玉”的作用。 1. 写在前面 |本文主要针对 Hotspot VM 中“CMS + ParNew”组合的一些使用场景进行总结。重点通过部分源码对根因进行分析...转载 2021-01-22 14:49:32 · 378 阅读 · 0 评论 -
JVM类加载机制
Java虚拟机把描述类的数据从Class文件加载到内存, 并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制;在Java语言里类的加载、连接、初始化过程都是在程序运行期间完成的,这种策略让稍微影响一些性能,但是对Java应用提供了极高的扩展性和灵活性,Java天生可以动态扩展的语言特性就是依赖运行时动态加载、动态链接这个特点实现的。 虚拟机什么时候才会加载Class文件并初始化类呢? 虚拟机如何加载一个Class文件呢? 虚拟机加载一个C原创 2021-01-22 13:08:26 · 146 阅读 · 0 评论 -
JVM垃圾收集器
垃圾收集器需要干三件事:哪些内存需要回收,什么时候回收,如何回收?本文将围绕着三个方面探讨。原创 2021-01-21 18:41:26 · 84 阅读 · 0 评论 -
探索OutOfMemoryError与StackOverflowError
本文的目的有两个:1.OutOfMemoryError与StackOverflowError异常在哪个区域发生,2.解决问题的思路;因工作中发现团队的好多人知道一堆定位工具,但对于定位思路模糊不清,不知道所报异常具体问题在哪里胡乱分析,效率低下,故而总结下文。 一、OutOfMemoryError异常 1.1 Java堆(-Xmx -Xms) 1.1.1标识...原创 2020-02-13 14:11:31 · 200 阅读 · 0 评论 -
JVM对象探秘
本文以最常用的虚拟机HotSpot与最常用的内存区域java堆为例,深入探讨HotSpot虚拟机在Java对象中分配、布局和访问的全过程。 一、对象的创建 当Java虚拟机遇到一条字节码new指令时;检测运行时常量池中是否定位到一个类的符号引用及这个符号引用代表的类是否已被加载,解析和初始化过,若否执行相应的类加载过程;若是虚拟机为新生对象分配内存(把一块确定大小的内存从Ja...原创 2020-02-11 22:47:57 · 138 阅读 · 0 评论 -
Java虚拟机内存区域划分
一、运行时数据区域划分 根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。 注:有填充色为线程共享区,无填充色为线程隔离的数据区 二.运行时数据区各部分区域存储的数据: 2...原创 2020-02-10 21:25:49 · 362 阅读 · 0 评论