JVM
文章平均质量分 89
g-Jack
硕士毕业于北京交通大学,拥有6年开发工作经验,热爱编程,乐于分享,擅长微服务和中间件。
展开
-
Java类加载的双亲委派机制
一、类加载器在JVM有 两种类型的类加载器,一种是由c++编写,一种是由java编写的,其中启动类加载器(Bootstrap Class Loader)是由c++编写,其余的都是有java编写,由java编写的类加载器都继承自类java.lang.ClassLoader,为什么小编要这么区分呢,这是因为c++编写的,开发者无法直接获取到, 所以不允许直接通过引用进行操作。下面我们分别介绍几个类加载器: 1、启动类(Bootstrap)加载器:是由本地代码实现的类加载器,他负责将<Java_..原创 2021-04-24 18:46:56 · 301 阅读 · 0 评论 -
JVM性能监控与故障处理工具
引言在 应用服务出现模型的卡顿或者CPU飙升等问题时,总是要分析一下对应的进程的JVM状态以定位问题和解决问题并做出响应的优化,在这个过程中java自带的一些状态监控 命令工具就非常方便了。1、jps:JVM进程状况工具JDK中很多的小工具都参考 了unix的命名方式,jps 就是其中的典型。除了名称和UNIX中的ps相似之外,功能也和ps命令类似:可以列出正在运行的虚拟机进程,...原创 2019-12-14 11:15:19 · 6238 阅读 · 2 评论 -
垃圾收集器
如果说垃圾回收算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现,java虚拟机实现规范中对垃圾收集器应该如何实现并没有任何规定,因此不同厂商、不同版本的虚拟机提供的垃圾收集器存在很大的差异,接下来我们主要介绍一下HOTSPOT虚拟机中的几种垃圾收集器。这个虚拟包含的收集器如下图: 上图中7中作用于不同分代的收集器,如...原创 2019-12-07 22:15:52 · 6153 阅读 · 0 评论 -
垃圾收集策略与算法
在前面的博文当中我们已经介绍了java运行时内存区域的各个部分及特点,其中程序计数器、虚拟机栈、 本地方法栈三个区域随着线程而生,随着线程而灭;栈中的栈帧随着方法的执行和退出,有条不紊的执行者入栈和出栈操作。每一个栈帧分配 多少内存基本上是在类结构确定下来的时候就 已知的,因此这几个区域的内存分配和回收都具备确定性, 在这几个区域 就不用过多的考虑回收问题,所以所谓的垃圾回收主要针对的区域是堆,这...原创 2019-12-05 23:43:02 · 6003 阅读 · 0 评论 -
JAVA内存模型(JMM)详解
引言为了更好的了解底层原理,写出更加高效的代码,今天我们 详细的分析一下JAVA内存模型(JMM),JAVA内存模型是我们深入了解java并发变成的先决条件。对于后续多线程 中的线程安全,同步异步处理等更是大有裨益。硬件内存架构在学习java内存模型之前,先了解一下计算机硬件模型,我们都知道处理器与计算机存储设备运算速度有几个数量级的差别。总不能让处理器一直等待计算机存储设备,这样就没...原创 2019-12-04 23:28:47 · 794 阅读 · 0 评论 -
JAVA8 JVM内存结构变了,永久代到元空间
在文章《JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部变化。JVM内存结构的细化再来看一下《JVM之内存结构详解》中的内存结构图。为了更细化的讲解,我们将该图进行进...原创 2019-12-03 21:38:20 · 169646 阅读 · 2 评论 -
JAVA GC垃圾回收机制详解
引言在上一篇博客中我们详细分析了,JVM的内存结构。既然提到了JVM那么我们必须得谈一谈GC垃圾回收机制了,在分析垃圾回收机制之前呢,我们还是需要来内存结构中堆(Heap)的详细结构。图中展示了堆中三个区域:Eden、From Survivor、To Survivor。从图中可以也可以看到它们的大小比例,准确来说是:8:1:1。为什么要这样设计呢,本篇文章后续会给出解答,还是根据垃圾...原创 2019-12-02 12:57:50 · 172072 阅读 · 2 评论 -
JVM之内存结构详解
对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。 我们不能为了面试而面试,但是学习会这些核心知识你必定会成为面试与工作中“最亮的一颗星”。本系列首发于微信公众号“程序新视界”。下面,开启我们的第一篇文章《JVM之内存结构详解》。思考一下...原创 2019-11-27 23:40:17 · 39438 阅读 · 2 评论