java虚拟机(JVM)总结

主要把握几个重要点: 

  1. JVM的运行时数据区
  2. 垃圾回收机制
  3. 类的加载过程

1.JVM的运行时数据区

JVM有虚拟机栈,方法区,本地方法栈,堆,程序计数器。需要注意的是从java1.7出现了元空间,1.8取消了方法区,全部用元空间,存在本地内存中。

2.垃圾回收机制

堆内存分为年轻代,年老代。用可达性算法判断是否丢弃对象。

minigc时清空Eden和from区,复制存活到to区。这是复制算法

-XX:SurvivorRatio即Eden和from的比例,默认是8,即Eden区占年轻代空间的8/10,from和to各占survivor的一半。

fullgc主要是回收年老代,把存活对象移到内存的一端。这是标记-整理算法

有四种对象的引用类型:强引用,软引用,弱引用,虚引用。

收集器是具体回收策略

  • 新生代收集器:Serial、ParNew、Parallel Scavenge;
  • 老年代收集器:Serial Old、Parallel Old、CMS;
  • 整堆收集器:G1

只有CMS和G1是真正的并发执行,不影响业务代码

类的加载:加载、验证、准备、解析和初始化

双亲委派模型:类加载器不会自己加载,而是把这个请求委派给父类加载器。只有父类无法完成时子类才会尝试加载。

破坏双亲委派模型:线程上下文加载器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值