jvm的运行模式 有3种:
解释模式: 执行一行jvm字节码就编译一行为机器码(执行的机器码加载后会直接清除)
编译模式:现将所有的jvm的字节码编译成机器码,一次性执行机器码
混合模式:jvm 一般采用混合模式,普通的代码会采用解释模式,像一些热点数据(经常被用的数据,采用编译模式,加载到内存中)
对象逃逸分析(它是在 即时编辑的时候发生的):分析对象的动态作用域,当一个对象被定义后,它可能会被其它方法调用,
如果对象 不被其他所方法锁引用, 只是局限于当前方法, 就未发生逃逸, 直接把方法里面的所有存到该方法的栈帧区域内, 随着 方法结束 直接清除栈 ,避免了向堆内存放数据
一:该方法发生逃逸,返回了一个对象,该对象可能被外界使用
public User test1(){
User user= new User();
return user;
}
二:该方法为发生逃逸
public void test1(){
system.out.print("chen")
}