
《JVM》
文章平均质量分 83
学习JVM,深入学习JVM。
CoderBruis
菜是原罪
展开
-
深入学习Java volatile关键字
前言在学习volatile之前,先需要了解并发编程的一些基础概念。并发编程的目的是为了让程序运行得更快,但是,并不是启动的线程越多就能让程序大幅度的并发执行。因为在实际开发中,并发编程将会面临大量的问题,比如上下文切换问题、死锁问题,以及受限于硬件和软件资源限制问题。上下文切换时间片是CPU分给各个线程的时间,因为时间片非常短,所以CPU将会在各个线程之间来回切换从而让用户感觉多个程序...原创 2019-01-04 09:56:03 · 305 阅读 · 0 评论 -
Java内存区域和常量池总结
运行时数据区运行数据区包含以下几个区域:方法区(Method Area)Java堆(Heap)本地方法栈(Native Method Stack)虚拟机栈(VM Stack)程序计数器(Program Conter Register)其中方法区和堆是所有线程共享的数据区,而其他三个区收拾线程隔离的数据区。Java虚拟机在执行Java程序的过程中将它管理的内存划分为若干个不同的区...原创 2018-12-24 22:46:42 · 1060 阅读 · 0 评论 -
深入理解并总结一波Java类加载过程
编程语言发展的大步发展——代码编译的结果,从本地机器码变为字节码从Java类到JVM执行Class文件Java类会被编译为Class文件,这里,编译的过程先不去具体了解,Class文件中存储的各种信息,包括魔数、Class文件的版本、常量池、访问标志、字段表集合等等重要信息,都需要被加载到JVM中之后才能运行和使用。虚拟机会将Class文件中的描述类的数据加载到内存中,然后对数据进行校验、转...原创 2018-12-22 15:08:34 · 335 阅读 · 0 评论 -
一篇文章让你快速弄清Java虚拟机的GC过程
前言要弄清Java虚拟机GC的整个过程,就得弄明白Java虚拟机用什么来进行GC?Java虚拟机在哪里GC?什么时候GC?GC什么?开门见山GC(Garbage Collection)垃圾收集,JVM一个非常重要的功能。本文将围绕着JVM的GC这个动作展开,来过一遍GC的整个运作过程。JVM用什么来进行GCJVM是GC的发起者,准确说是VMThread是GC的发起者,那用什么来进行GC呢...原创 2019-09-02 11:13:21 · 771 阅读 · 0 评论 -
一文学会使用GCeasy——一款超好用的在线分析GC日志的网站
前言打印出GC日志之后,就可以拿去GCeasy官网上进行GC可视化分析了。下文将详细讲解下GCeasy的图形化分析结果。(此次的GC分析,用的是ParallelGC的日志)进入GCeasy官网之后,选择需要导入的GC日志文件导入即可。正文JVM Heap Size这一部分分别使用了表格和图形界面来展示了JVM堆内存大小。如图所示:左侧分别展示了年轻代的内存分配分配空间大小(All...原创 2019-09-23 23:48:31 · 18365 阅读 · 4 评论 -
JVM出现连续的FullGC该怎么办?
前言之前已经介绍了下使用GCeasy来通过图形化界面的形式分析GC日志,下面将转载一篇写的比较好的关于FullGC的文章,介绍了线上JVM连续出现FullGC的场景以及解决方案。转载文章FullGC是垃圾回收过程中一个非常重要的事件。当发生FullGC的时候,垃圾收集器为了回收更多的垃圾对象,它会从JVM的所有内存中回收垃圾(Young、Old、Perm、Metaspace)。FullGC有...转载 2019-09-25 18:39:44 · 3245 阅读 · 0 评论