![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM&GC
【江的福AC万物】
这个作者很懒,什么都没留下…
展开
-
江的福的小本本之初识JVM
首先,JVM是运行在操作系统上的,与硬件没有直接的交互。再来,看jvm的体系结构。一块一块的剖析它。一、类装载器系统:需要注意的有以下四点:1、是什么:类加载器负责加载class文件,识别class文件依靠的是class文件开头特定的文件标识。将class文件的字节码内容,加载到内存中,并将这些内容,转换成方法区中运行时数据结构。注意的是classloader只负责加载,能否运行Ex...原创 2020-04-08 14:00:54 · 129 阅读 · 0 评论 -
江的福浅谈JVM堆及GC的引入
一个JVM实例只存在一个堆内存中,堆内存的大小是可以调节的,类加载器读取了类文件后,需要把类、方法、常变量,放到堆内存中,保存所有引用类型的真实信息,以便执行器执行。堆内存在物理上分为两部分:新生区、养老区堆内存在逻辑上分为三部分:新生区,养老区,还有java8将永久区更名的元空间。接下来聊聊堆内存中是如何管理数据的。(无限地new对象)当伊甸园区满了之后,开启GC(也可以被称为YGC或...原创 2020-04-13 23:03:24 · 272 阅读 · 0 评论 -
JVM调参及GC收集日志信息
三个参数:初始内存最好跟最大内存一样大,避免GC跟应用程序争抢内存,防止理论值的峰值和峰谷,忽高忽低 。恒定内存,节约资源。那么该怎么配? long maxMemory =Runtime.getRuntime().maxMemory(); long totalMemory =Runtime.getRuntime().totalMemory(); Syst...原创 2020-04-14 16:58:50 · 293 阅读 · 0 评论 -
江的福的小本本之GC算法
1、引用计数法有引用加1,引用失效减1,当值为0,进行回收。第二次理解:从根对象出发,向下搜索,引用链存在即可达,不存在则变为不可达对象,就该对对象进行垃圾回收。但是要维护一个引用计数器,有些没必要。2、复制算法顾名思义,将一块内存中的存活对象复制到另一个内存中,然后将内存清空。因此这样不会产生内存碎片。而且复制算法一般会用在新生代,因为新生代的极大部分数据都是朝生夕死的,复制量...原创 2020-04-15 14:02:27 · 123 阅读 · 0 评论 -
江的福的小本本JVM之GC Roots
前面一篇刚说了垃圾回收算法,但是我们只知道了怎么收垃圾,但却还没搞清楚哪些是垃圾,是不是有点喧宾夺主了呢。所以,这次来聊聊哪些是垃圾,如何判定这些垃圾。简单来说,内存中不被引用到的空间就是垃圾。因此,怎么来判定某些对象是否被引用到了呢?1、引用计数法这个之前说过了,需维护一个引用计数器,加之由于循环引用问题,基本上不会使用这种方法。2、可达性分析法所谓的GC Roots或者说Traci...原创 2020-04-15 17:10:12 · 74 阅读 · 0 评论 -
JVM参数类型及如何查看默认参数
闲言少叙,时间紧迫。JVM的参数类型:1、标配参数 -version、-help、java -showversion 等2、X参数(了解)3、XX参数(1)- Boolean类型公式: -XX:+ 或者 - 某个属性值+表示开启-表示关闭先来学习一下如果查看一个正在运行中的java程序,查看他的某个jvm参数是否开启?具体值是多少?jps -ljinfo -flag 某...原创 2020-04-15 21:04:04 · 798 阅读 · 0 评论 -
江的福的小本本之JVM常用基本配置参数
-Xms:初始大小内存,默认为物理内存的1/64。等价于-XX:InitialHeapSize-Xmx:最大分配内存,默认为物理内存的1/4。等价于-XX:MaxlHeapSize-Xss:设置单个线程栈的大小,一般默认为512k~1024k。等价于-XX:ThreadStackSize这个大小是依赖于平台的。-Xmn:新生区年轻代的大小。(很少情况下会调)-XX:M...原创 2020-04-16 10:26:32 · 186 阅读 · 0 评论 -
江的福的小本本之引用
整体架构:1、强引用(默认支持模式)当内存不足时,jvm进行垃圾回收,但是对于强引用的对象,jvm宁愿造成OOM,也不会回收强引用对象。因此它经常是造成内存泄漏的主要原因之一。代码说明:public static void main(String[] args) throws InterruptedException { Object o =new Object();//...原创 2020-04-16 15:24:04 · 108 阅读 · 0 评论 -
江的福的小本本之OOM
1、StackOverflowError栈溢出直接递归,了解? 无限栈帧,无尽火力。直接猝死StackOverflowError稍带提一点,StackOverflowError跟我们经常提的OOM两者都是错误Error。2、OOM:java heap space这个就不举例了,有很多种方式干翻它。3、OOM: GC overhead limit exceededjava....原创 2020-04-17 17:24:33 · 92 阅读 · 0 评论 -
江的福的小本本之垃圾回收(收集)器
本篇先建基本的框架,下一篇再对其进行深入探索,垃圾回收器是垃圾回收算法的落地实现,但是还没有一种最好的垃圾回收器,所以现在只能针对应用去选择适合的垃圾回收器,进行分代收集。四种垃圾回收的方式:Serial、Parallel、CMS、G1Serial(串行)串行垃圾收集器,是为单线程环境设计的、使是用一个线程进行垃圾回收,并且回收时,会暂停所有的服务,可想而知,它并不适合服务器环境。Par...原创 2020-04-18 16:50:53 · 102 阅读 · 0 评论