参考答案
分析对象动态作用域。
- 当一个对象在方法里面被定义后,它可能被外部方法所引用。例如,作为调用参数传递到其他方法中,这种称为方法逃逸。
- 被外部线程访问到,譬如赋值给可以在其他线程中访问的实例变量,这种称为线程逃逸。
- 从不逃逸。
如果能证明一个对象不会逃逸到方法或线程之外,或者逃逸程度比较低(只逃逸出方法而不会逃逸出线程),则可能为这个对象实例采取不同程度的优化,如栈上分配、标量替换、同步消除。
以上,是JVM面试题【什么是逃逸分析】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—