jvm - 逃逸分析

jvm的运行模式 有3种:

 解释模式: 执行一行jvm字节码就编译一行为机器码(执行的机器码加载后会直接清除)

 编译模式:现将所有的jvm的字节码编译成机器码,一次性执行机器码

 混合模式:jvm 一般采用混合模式,普通的代码会采用解释模式,像一些热点数据(经常被用的数据,采用编译模式,加载到内存中)

对象逃逸分析(它是在 即时编辑的时候发生的):分析对象的动态作用域,当一个对象被定义后,它可能会被其它方法调用,

如果对象  不被其他所方法锁引用, 只是局限于当前方法, 就未发生逃逸, 直接把方法里面的所有存到该方法的栈帧区域内, 随着 方法结束 直接清除栈  ,避免了向堆内存放数据

一:该方法发生逃逸,返回了一个对象,该对象可能被外界使用

 public User test1(){

      User user=  new  User();

      return user;

}

二:该方法为发生逃逸

 public void test1(){

   system.out.print("chen")

}

发布了143 篇原创文章 · 获赞 41 · 访问量 59万+

猜你喜欢

转载自blog.csdn.net/qq_29257691/article/details/103871839