JVM&G1 GC 学习笔记(一)
- 在入门学习JVM的过程中,我们需要先了解关于JVM的知识中有哪些关键词或关键术语,今天在看完书后我想记录下来。
- Xms64mb 虚拟机初始化时设置内存大小为64mb
- Xmx256mb 设定虚拟机的最大内存大小为256mb,最好不要超过物理内存大小。
- 内存泄漏(Memory Leak) 当程序申请一块内存地址,而它在没有释放内存的情况下没有引用指向该内存位置,则会发生内存泄漏。即内存空间使用完毕没有进行回收。
- 强引用(Strong Reference) 在程序当中对象存在一个指向它的引用时,就是强引用。如:Object obj = new Object(); jvm不会清理强引用。
- 软引用 (Soft Reference) 软引用在内存足够时不会被jvm清理,当虚拟机内存快爆满即将发生out of memory 时,jvm会把软引用清理清理。并把它放入引用队列(Reference Queue)
String str=new String("abc"); // 强引用(Strong Reference)
SoftReference<String> softRef=new SoftReference<String>(str);//软引用 (Soft Reference)
- 弱引用(Weak Reference) 弱引用的对象总是会被jvm回收,当对象没有引用时,该对象变为弱引用。jvm进行gc时会优先把该对象回收。弱引用常常存在于复杂的集合中。如:Map,当回收比较复杂的对象时,jvm需要经过几次gc才能完成。
- 虚引用 (Phantom Reference) 又称为幽灵引用,该引用不会影响jvm进行gc操作。使用虚引用的目的就是为了得知对象被GC的时机,所以可以利用虚引用来进行销毁前的一些操作,比如说资源释放等。这个虚引用对于对象而言完全是无感知的,有没有完全一样,但是对于虚引用的使用者而言,就像是待观察的对象的把脉线,可以通过它来观察对象是否已经被回收,从而进行相应的处理。
- 对象中止(finalization) 这个函数相当于c++里面的析构函数,当jvm进行gc时会先调用这个方法,然后再进行清理。这个函数只能被调用一次。
- Serviceability Agent jdk自带的底层诊断工具
- JIT(just-in-time)即时编译器 即时编译指的是将java代码编译成机器码(类似于c++的编译),这样就能加快程序函数的执行速率。
- 年轻代(Young Generation) jvm虚拟机中堆内存的一部分,用于存放刚创建的对象。其中,年轻代有3个分区,分别为Eden、Survivor(From、To),默认大小比例是8:1。
- 年老代(Old Generation) 同样是存放对象的区域,在年轻代中的对象,在经过gc后还存在,由jvm通过算法(提升规则)判断能否进入年老代。
- 永久区(PermGen Space) 这部分存放Class和Meta的信息,类加载时会被放在该位置,所以启动时需要注意类加载的数量,不要引入过多的jar包,或增大该区域的大小。永久区只针对于Jdk7的虚拟机,在JDK8中,HotSpot虚拟机使用本地内存空间存放元数据,称为(Metaspace),所以永久代在JDK8中被移除。
- Minor GC 发生在年轻代的gc操作,通常执行的频率比Full GC 要高。
- Full GC (Major GC) 根据一定的规则来判断是否执行该操作,通常是发生在虚拟机年老代内存即将不足的时候,频率比Minor GC 要低。
- Stop the World 指的是JVM在进行GC操作的时候,会停止所有正在运行的应用程序,待GC完成才继续执行。
JVM&G1 GC 学习笔记(一)的更多相关文章
- GC学习笔记
GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里. 一.GC特性以及各种GC的选择 1.垃圾回收器的特性 2.对垃圾回收器的选择 2.1 连续 V ...
- 非常详细GC学习笔记
转载:http://blog.csdn.net/fenglibing/article/details/6321453 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转 ...
- 很具体GC学习笔记
GC学习笔记 这是我公司同事的GC学习笔记,写得蛮具体的,由浅入深,循序渐进,让人一看就懂,特转到这里. 一.GC特性以及各种GC的选择 1.垃圾回收器的特性 2.对垃圾回收器的选择 2.1 连续 V ...
- JVM调优- 学习笔记(转)
http://blog.csdn.net/fenglibing/article/details/6321453 GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就 ...
- 深入理解JVM+G1+GC.pdf (中文版带书签)
目录 序 VII前言 IX 第1章 JVM & GC基础知识 11.1 引言 21.2 基本术语 31.2.1 Java相关术语 41.2.2 JVM/GC通用术语 241.2.3 G1涉及术 ...
- Jvm工作原理学习笔记(转)
一. JVM的生命周期 1. JVM实例对应了一个独立运行的java程序它是进程级别 a) 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有pub ...
- (转载)Jvm工作原理学习笔记
一. JVM的生命周期 1. JVM实例相应了一个独立执行的java程序它是进程级别 a) 启动.启动一个Java程序时.一个JVM实例就产生了.不论什么一个拥有publ ...
- java Jvm工作原理学习笔记
一. JVM的生命周期 1. JVM实例对应了一个独立运行的java程序它是进程级别 a) 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有pub ...
- JVM类加载原理学习笔记
(1)类的生命周期包括了:加载(Loading).验证(Verification).准备(Preparation).解析(Resolution).初始化(Initialization).使用(Usin ...
随机推荐
- Codeforces Round 561(Div 2)题解
这是一场失败的比赛. 前三题应该是随便搞的. D有点想法,一直死磕D,一直WA.(赛后发现少减了个1……) 看E那么多人过了,猜了个结论交了真过了. 感觉这次升的不光彩……还是等GR3掉了洗掉这次把, ...
- .net项目发布到iis
参考: https://www.cnblogs.com/teyigou/p/8125379.html https://www.cnblogs.com/kissfu/p/6399472.html htt ...
- Ubuntu16.04安装Filebeat
Filebeat官方文档地址 https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html 下载和 ...
- 使用canvas实现图片预览、缩放(压缩)以及生成文件下载
参考 https://www.runoob.com/html/html5-canvas.html https://www.cnblogs.com/yuanzhiguo/p/8288822.html h ...
- java 压缩图片(只缩小体积,不更改图片尺寸)
1.情景展示 在调用腾讯身份证OCR接口的时候,由于要求图片大小只能限制在1MB以内,这样,就必须使用到图片压缩技术 2.代码展示 /** * 图片处理工具类 * @explain * @auth ...
- bzoj2839 集合计数 组合计数 容斥原理|题解
集合计数 题目描述 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得它们的交集的元素个数为K,求取法的方案数,答案模1000000007.(是 ...
- Go:为何带来泛型
中文版 English version 介绍 [这是在Gophercon 2019上发表的演讲版本.视频链接可供使用.] 这篇文章是关于向Go添加泛型的意义,以及为什么我认为我们应该这样做.我还将介绍 ...
- Executor多线程框架
啥都别说了,上代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; impor ...
- CentOS安装PinPoint
1.软件准备 jdk-8u191-linux-x64.tar.gz,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...
- kali无法安装nvidia显卡驱动
按照各位大神的博客安装nvidia显卡驱动一直失败,重启之后无法正常进入系统,恢复模式可以进入,一直以为自己是不是哪里步骤不对,后面来回重装了几次系统. 最后意识到虚拟机里用的是虚拟网卡,并非宿主机的 ...