首页 > 其他 > 详细

逃逸分析(Escape Analysis)

时间:2018-07-18 10:35:19      阅读:104      评论:0      收藏:0      [点我收藏+]

什么是逃逸?

   逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故由于无法回收,即成为逃逸。

    /**
     * 无逃逸
     */
    void test01() {
        String test1 = "test1";
    }
    String test2;

    /**
     * 逃逸
     */
    void test02() {
        test2 = "test2";
    }

在方法内的变量不会逃逸,在方法外声明的对象会发生逃逸,脱离了方法的控制,方法结束时变量没有结束;

逃逸分析参数设置:

-XX:+DoEscapeAnalysis//使用
-XX:-DoEscapeAnalysis//不用

 

逃逸分析(Escape Analysis)

原文:https://www.cnblogs.com/chenglc/p/9327700.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!