博客专栏  >  研发管理   >  JVM进阶

JVM进阶

对于Java程序猿来说,Java虚拟机可以说是既熟悉又神秘,很少有Java程序猿能够抑制自己探究它的冲动。本“JVM进阶”专栏系统讲解了Java虚拟机工作机制和底层原理。希望能够对大家有所帮助。

关注
205 已关注
19篇博文
  • JVM进阶(一)——初识JAVA栈

    JVM进阶(一)——初识JAVA栈  若想使自己编写的Java程序高效运行,以及进行正确、高效的异常诊断,JVM是不得不谈的一个话题。本”JVM进阶“专栏大部分内容均来源于经典书籍《深入理解Java虚...

    2017-01-08 14:12
    43902
  • JVM进阶(二)——初识JAVA堆

    JVM进阶(二)——初识JAVA堆  在博文《JVM进阶(一)——初识JAVA栈》中我们说到了栈,他在内存中是连续的空间;保存一个个的栈帧,对应一次次方法的调用;还讲到了他是保存对象的引用,那么对象存...

    2017-01-08 14:29
    43072
  • JVM进阶(三)——内存分配与回收策略

    JVM进阶(三)——内存分配与回收策略  各位小伙伴大家好,还记得上一博文《JVM进阶(二)——初识JAVA堆》我们讲了什么吗?虚拟机中的堆,他是整个内存模型中占用最大的一部分,而且不是连续的。当有需...

    2017-01-08 14:47
    42871
  • JVM进阶(四)——利用MAT排查堆溢出

    JVM进阶(四)——利用MAT排查堆溢出  堆已经讲得差不多啦,这章我们以一个例子来说说如何设置以及当发生堆溢出的时候怎么排查问题。先看一小段代码:   代码中使用了一个无限循环来为list添加...

    2017-01-15 09:11
    42495
  • JVM进阶(五)——JAVA GC之标记

    JVM进阶(五)——GC之标记前言  堆分为年轻代和年老代。永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息、常量、静态变量。而该区域在java8已被删除,取而代之的是元空间,...

    2017-01-15 09:28
    42502
  • JVM进阶(六)——鲜为人知的二次标记

    JVM进阶(六)——鲜为人知的二次标记  上一章我们讲到了标记,但是不是被标记了就肯定会被回收呢?不知道小伙伴们记不记得Object类有一个finalize()方法,所有类都继承了Object类,因此...

    2017-01-21 17:00
    42557
  • JVM进阶(七)——从GC日志分析堆内存

    JVM进阶(七)——从GC日志分析堆内存  在前面的文章中,我们只设置了整个堆的内存大小。但是我们知道,堆又分为了新生代,年老代。他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们...

    2017-01-21 17:22
    41998
  • JVM进阶(八)——Stop The World

    JVM进阶(八)——Stop The World  小伙伴还记得上一篇中我们留下的一个问题吗?什么是停顿类型!经过前几章的学习,我们知道垃圾回收首先是要经过标记的。对象被标记后就会根据不同的区域采用不...

    2017-01-21 17:30
    42365
  • JVM进阶(九)——JAVA 年轻代收集器

    JAVA 年轻代收集器  继续上一篇博文所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程。如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低。   因此...

    2017-03-13 10:03
    42656
  • JVM进阶(十)——JAVA 年老代收集器

    JVM进阶(十)——JAVA 年老代收集器  在上一篇博文我们介绍了JAVA新生代收集器,本篇博文我们要讲的就是关于老年代的一些收集器。老年代存活的一般是大对象以及生命很顽强的对象,因此新生代的复制算...

    2017-03-13 10:16
    42068
  • JVM进阶(十一)——JAVA G1收集器

    JVM进阶(十一)——JAVA G1收集器  在前两篇博文中讲解了新生代和年老代的收集器,在本篇博文中介绍一个收集范围涵盖整个堆的收集器——G1收集器。 先讲讲G1收集器的特点,他也是个多线程的收集...

    2017-03-13 10:34
    42287
  • JVM进阶(十二)——JAVA 可视化分析工具

    JVM进阶(十二)——JAVA 可视化分析工具  经过前几篇博文对堆内存以及垃圾收集机制的学习,相信小伙伴们已经建立了一套比较完整的理论体系!本篇博客就根据已有的理论知识,通过可视化工具来实践一番。 ...

    2017-03-13 10:47
    42529
  • JVM进阶(十三)——阶段回顾

    JVM进阶(十三)——阶段回顾  各位小伙伴,到上一篇博文为止,我们的内存模型相关知识就已经讲完了!讲!完!了!不知道大家吸收了多少,这里我们简单的来回顾一下吧!   内存基本分为JAVA栈、本地方...

    2017-03-13 10:58
    42331
  • JVM进阶(十四)——初识JAVA 类加载机制

    JVM进阶(十四)——初识JAVA 类加载机制  从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.clas...

    2017-03-13 11:08
    42522
  • JVM进阶(十五)——JAVA 类加载器

    JVM进阶(十五)——JAVA 类加载器  今天我们将类加载机制5个阶段中的第一个阶段,加载,又叫做装载。为了便于阅读,以下都叫做装载。   装载的第一步就是要获得二进制的字节流,它可以从读.cla...

    2017-03-13 14:45
    42535
  • JVM进阶(十六)——JAVA 双亲委派模型

    JVM进阶(十六)——JAVA 双亲委派模型  在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着...

    2017-03-13 15:01
    42425
  • JVM进阶(十七)——准备-解析-初始化

    JVM进阶(十七)——准备-解析-初始化  在类加载机制的五个阶段中,我们已经讲完了第一个阶段。剩下的四个阶段由于涉及到比较多的类文件相关的知识,现在讲了会看得很吃力,所以我们暂时不会一一的去细讲,只...

    2017-03-13 15:20
    42195
  • JVM进阶(十八)——初识Class文件

    JVM进阶(十八)——初识Class文件  关于类加载机制的相关知识在前面的博文中暂时先讲那么多。中间留下了很多问题,从本篇博文开始,我们来一一解决。   从我们最陌生而又最熟悉的.class文件开...

    2017-03-13 15:54
    42359
  • JVM进阶(十九)——Class文件常量池

    JVM进阶(十九)——Class文件常量池  在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,...

    2017-03-13 16:20
    42264

Python3进阶
572123238
J2EE进阶
19828888
剑指Offer
23990007
分布式系统进阶
201004136
MySQL进阶
251227093
Android开发进阶
281401520
Java开发进阶
663077088
网站开发进阶
442057447
Angularjs 1.x进阶
412054838
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部