逃逸分析、栈上分配
栈上分配,可以直接随方法的销毁而销毁,减轻jc的压力
逃逸分析,可以确定一个对象是否会被其他线程进行访问。
1、全局逃逸(GlobalEscape)
即一个对象的作用范围逃出了当前方法或者当前线程,有以下几种场景:
对象是一个静态变量
对象是一个已经发生逃逸的对象
对象作为当前方法的返回值
2、参数逃逸(ArgEscape)
即一个对象被作为方法参数传递或者被参数引用,但在调用过程中不会发生全局逃逸,这个状态是通过被调方法的字节码确定的。
3、没有逃逸
即方法中的对象没有发生逃逸
逃逸分析、栈上分配
最新推荐文章于 2022-04-11 17:24:07 发布