• 在入门学习JVM的过程中,我们需要先了解关于JVM的知识中有哪些关键词或关键术语,今天在看完书后我想记录下来。
  1. Xms64mb    虚拟机初始化时设置内存大小为64mb
  2. Xmx256mb  设定虚拟机的最大内存大小为256mb,最好不要超过物理内存大小。
  3. 内存泄漏(Memory Leak) 当程序申请一块内存地址,而它在没有释放内存的情况下没有引用指向该内存位置,则会发生内存泄漏。即内存空间使用完毕没有进行回收。
  4. 强引用(Strong Reference) 在程序当中对象存在一个指向它的引用时,就是强引用。如:Object obj = new Object(); jvm不会清理强引用。
  5. 软引用 (Soft Reference)     软引用在内存足够时不会被jvm清理,当虚拟机内存快爆满即将发生out of memory 时,jvm会把软引用清理清理。并把它放入引用队列(Reference Queue)
    1. String str=new String("abc");                  //  强引用(Strong Reference)
      SoftReference<String> softRef=new SoftReference<String>(str);//软引用 (Soft Reference)
  6. 弱引用(Weak Reference) 弱引用的对象总是会被jvm回收,当对象没有引用时,该对象变为弱引用。jvm进行gc时会优先把该对象回收。弱引用常常存在于复杂的集合中。如:Map,当回收比较复杂的对象时,jvm需要经过几次gc才能完成。
  7. 虚引用 (Phantom Reference) 又称为幽灵引用,该引用不会影响jvm进行gc操作。使用虚引用的目的就是为了得知对象被GC的时机,所以可以利用虚引用来进行销毁前的一些操作,比如说资源释放等。这个虚引用对于对象而言完全是无感知的,有没有完全一样,但是对于虚引用的使用者而言,就像是待观察的对象的把脉线,可以通过它来观察对象是否已经被回收,从而进行相应的处理。
  8. 对象中止(finalization)   这个函数相当于c++里面的析构函数,当jvm进行gc时会先调用这个方法,然后再进行清理。这个函数只能被调用一次。
  9. Serviceability Agent   jdk自带的底层诊断工具

  1. JIT(just-in-time)即时编译器  即时编译指的是将java代码编译成机器码(类似于c++的编译),这样就能加快程序函数的执行速率。
  2. 年轻代(Young Generation)    jvm虚拟机中堆内存的一部分,用于存放刚创建的对象。其中,年轻代有3个分区,分别为Eden、Survivor(From、To),默认大小比例是8:1。
  3. 年老代(Old Generation)     同样是存放对象的区域,在年轻代中的对象,在经过gc后还存在,由jvm通过算法(提升规则)判断能否进入年老代。
  4. 永久区(PermGen Space) 这部分存放Class和Meta的信息,类加载时会被放在该位置,所以启动时需要注意类加载的数量,不要引入过多的jar包,或增大该区域的大小。永久区只针对于Jdk7的虚拟机,在JDK8中,HotSpot虚拟机使用本地内存空间存放元数据,称为(Metaspace),所以永久代在JDK8中被移除。
  5. Minor GC      发生在年轻代的gc操作,通常执行的频率比Full GC 要高。
  6. Full GC (Major GC)   根据一定的规则来判断是否执行该操作,通常是发生在虚拟机年老代内存即将不足的时候,频率比Minor GC 要低。
  7. Stop the World     指的是JVM在进行GC操作的时候,会停止所有正在运行的应用程序,待GC完成才继续执行。

JVM&G1 GC 学习笔记(一)的更多相关文章

  1. GC学习笔记

    GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里. 一.GC特性以及各种GC的选择 1.垃圾回收器的特性 2.对垃圾回收器的选择 2.1 连续 V ...

  2. 非常详细GC学习笔记

    转载:http://blog.csdn.net/fenglibing/article/details/6321453 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转 ...

  3. 很具体GC学习笔记

    GC学习笔记 这是我公司同事的GC学习笔记,写得蛮具体的,由浅入深,循序渐进,让人一看就懂,特转到这里. 一.GC特性以及各种GC的选择 1.垃圾回收器的特性 2.对垃圾回收器的选择 2.1 连续 V ...

  4. JVM调优- 学习笔记(转)

    http://blog.csdn.net/fenglibing/article/details/6321453 GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就 ...

  5. 深入理解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涉及术 ...

  6. Jvm工作原理学习笔记(转)

    一.         JVM的生命周期 1.       JVM实例对应了一个独立运行的java程序它是进程级别 a)     启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有pub ...

  7. (转载)Jvm工作原理学习笔记

    一.        JVM的生命周期 1.      JVM实例相应了一个独立执行的java程序它是进程级别 a)    启动.启动一个Java程序时.一个JVM实例就产生了.不论什么一个拥有publ ...

  8. java Jvm工作原理学习笔记

    一.         JVM的生命周期 1.       JVM实例对应了一个独立运行的java程序它是进程级别 a)     启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有pub ...

  9. JVM类加载原理学习笔记

    (1)类的生命周期包括了:加载(Loading).验证(Verification).准备(Preparation).解析(Resolution).初始化(Initialization).使用(Usin ...

随机推荐

  1. LaTeX表格紧跟文字 (不影响下方文本对齐)

    很多博客会让你用下面这行替换\\begin{table}和\\end{table},但是这样替换以后,表格下方所有文字都变成了居中对齐,section格式也都失效了. \makeatletter\de ...

  2. nginx1.16+php7.39配置笔记

    vim /etc/nginx/conf.d/default.conf 修改php相关配置如下: location ~ \.php$ {        root           /usr/share ...

  3. Java实现AES加密(window机器和linux机器) 注意window机器 和linux机器算法稍有不同

    一)什么是AES? 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用. ...

  4. Python【每日一问】25

    问: [基础题]:利用条件运算符的嵌套来完成此题:学习成绩 >=90 分的同学用 A 表示,60-89 分之间的用 B 表示,60 分以下的用 C 表示. [提高题]:求 s=a + aa + ...

  5. Spring通过注解获取所有被注解标注的Beans

    Spring提供的方法:Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annot ...

  6. xunsearch搜索测试

    1.导入测试数据 cd $prefix/sdk/php util/Indexer.php --source=csv --clean demo 然后出现 初始化数据源 ... csv WARNING: ...

  7. 【剑指offer】剪绳子

    题目描述 给你一根长度为n的绳子,请把绳子剪成m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]xk[1]x...xk[m]可能 ...

  8. 中级java面试经历

    2018年已经远去,2019年悄然而至.跳槽不仅是为了涨薪,更是为了锻炼自己,提高自己的能力.树挪死,人挪活.在一个公司呆的时间越长,就越老油条,从而失去不断前进的动力.现在下面就主要讲述我这一个月面 ...

  9. 14. Scala使用递归的方式去思考,去编程

    14.1 基本介绍 -Scala饰运行在Java虚拟机(Java Virtual Machine)之上,因此具有如下特点 1) 轻松实现和丰富的Java类库互联互通 2) 它既支持面向对象的编程方式, ...

  10. 「NOI2018」冒泡排序

    「NOI2018」冒泡排序 考虑冒泡排序中一个位置上的数向左移动的步数 \(Lstep\) 为左边比它大的数的个数,向右移动的步数 \(Rstep\) 为右边比它大的数的个数,如果 \(Lstep,R ...