• 在入门学习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. Spring Boot 知识笔记(thymleaf模板引擎)

    一.pom.xml中引入 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...

  2. 阿里云 azkaban 发邮件的坑

    azkaban : 是一个 任务调度平台 安装文档: https://azkaban.readthedocs.io/en/latest/getStarted.html 因为阿里云是禁止掉是STMP 2 ...

  3. 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...

  4. .NET 微服务 1. Docker 容器简介和选择

    容器特点 1. 容器可以将应用程序的依赖性和配置(抽象为 Mainfest 文件并部署)打包成一个容器镜像,可以让多次部署操作中的环境保持一致 2. 可以让IT人员很少或者不做修改就可以跨环境部署软件 ...

  5. Python【每日一问】33

    问: [基础题1]:设计一个重量转换器,输入以“g”为单位的数字后返回换算成“kg”的结果 [基础题2]:设计一个求直角三角形斜边长的函数,比如直角边长分别为3和4,输出结果为:The right t ...

  6. [EXP]CVE-2019-0604 Microsoft SharePoint RCE Exploit

    研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的. 剑桥大学的研究结果,当单词的字母顺序颠倒时,你仍旧可以明白整个单词的意思.其中重要的是:只要单词的第一个字母和 ...

  7. 递推 + 高精度 --- Tiling

    Tiling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7264   Accepted: 3528 Descriptio ...

  8. Sitecore 8.2 扩展体验分析报告

    本文简要介绍了如何为Experience Analytics创建自定义报告.在Sitecore术语中,我会说:创建新的报表维度和适当的报表以显示它们. 我们做的任务是:实现新的报告,显示不同网络浏览器 ...

  9. docker系列之三:docker实际应用

    以Docker为基础完成持续集成.自动交付.自动部署: 原理: RD推送代码到git 仓库或者svn等代码服务器上面,git服务器就会通过hook通知jenkins. jenkine 克隆git代码到 ...

  10. Field "details" doesn't have a default value

    [转载:原文链接http://my.oschina.net/wojibuzhu/blog/511104] MySQL 1364 错误提示:#1364 - Field "details&quo ...