【JVM】整体复盘总结

整个jvm已经于本年度二月初完结,这里是对一些基本知识的复盘
参考了学习微博:https://nyimac.gitee.io/2020/07/03/JVM%E5%AD%A6%E4%B9%A0/
总结(大约半个小时过一遍)

  1. 了解jvm,jre,jdk的区别

  2. 知道jvm的整体架构(内存结构包含哪些?执行引擎包含哪些?都有什么特点),内存结构

  3. 知道一些对堆内存进行诊断的指令jps,jmap,jconsole,jvirsalvm

  4. 知道1.8之前常量池的区别在这里插入图片描述

  5. 知道运行时常量池在这里插入图片描述

  6. 知道下列代码创建时字符串池的变化在这里插入图片描述

  7. 知道常量池的优点:避免重复创建对象,大大节省空间

  8. 了解intern方法:第一点是返回的是串池的值。第二点是要知道1.8之前放入串池还要在堆中复制一份,而1.8之后则是不再复制。

  9. 了解直接内存的好处,以及如何实现申请缓存与释放缓存,见:https://nyimac.gitee.io/2020/07/03/JVM%E5%AD%A6%E4%B9%A0/#%E9%87%8A%E6%94%BE%E5%8E%9F%E7%90%86

  10. 了解两种常见的判断是否可回收的算法,以及他们的特点。知道gc root的对象有哪些?

  11. 知道五种引用:强软弱虚终(箭头的出发点是左值)

  12. 知道回收时,引用类本身不会被回收,要用引用队列在这里插入图片描述

  13. 知道虚引用的一个实例时bytebuffer的回收clean(直接内存),终结器引用就是本地方法finalize

  14. 知道三种垃圾回收算法:标记清除,标记整理,复制(两倍内存)下面是复制方法的演示在这里插入图片描述

  15. 了解分代回收,minor GC,full GC,STW发生时机:https://nyimac.gitee.io/2020/07/03/JVM%E5%AD%A6%E4%B9%A0/#3%E3%80%81%E5%88%86%E4%BB%A3%E5%9B%9E%E6%94%B6

  16. 知道内存的一些机制在这里插入图片描述

  17. 知道三种常见的垃圾内存处理器:serial,cms,g1https://nyimac.gitee.io/2020/07/03/JVM%E5%AD%A6%E4%B9%A0/#4%E3%80%81%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E5%99%A8

  18. 知道类加载字节码当中(stack=2,locals=4)的含义

  19. 当new 一个对象时其实创建了两个对象到stack当中

  20. finally 中的代码被复制了 3 份,分别放入 try 流程,catch 流程以及 catch剩余的异常类型流程

  21. 对类的访问仅仅只有访问类的 static final 静态常量(基本类型和字符串)才不会导致类的初始化,此外子类访问父类的静态变量,只会触发父类的初始化

  22. 所谓类加载器就是通过一个类的全限定名来获取描述该类的二进制字节流

  23. 双亲委派模式,即调用类加载器ClassLoader 的 loadClass 方法时,查找类的规则:询问上级加载了此类吗?没有那么我就可以加载。在这里插入图片描述

  24. 类与类加载器的重要关系在这里插入图片描述

  25. 解释器与JIT的区别,主要是jit有个缓存在这里插入图片描述

  26. 逃逸分析在这里插入图片描述

  27. 运行期优化:方法内联在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值