JVM(宋红康)学习之逃逸分析及代码优化

问题:堆是分配对象存储的唯一选择吗?

答案是否定,但是由于逃逸分析技术的不成熟,所以也可以说这句话是正确的。

逃逸分析:在方法中被定义,只在方法内部进行使用,即为未逃逸。

快速分析new的对象实体是否发生逃逸分析:就看该对象在方法外是否能被调用

jdk7开始,逃逸分析是默认开启的。

代码优化:

  • 栈上分配
  • 同步省略
  • 分离对象或标量替换

栈上分配:

同步省略:

标量替换:标量替换简单来说就是将可以拆分的变量(如新定义的类),拆分为不可分解的量(标量),在java中,将其放入栈中进行存储。

逃逸分析是在服务器端才有的,在客户端是不存在逃逸分析的

逃逸分析小结:认为逃逸分析技术还是不成熟的

《堆》章节总结:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值