JAVA编译器
java是解释型语言,但是为了加快java的运行速度,java编译器横空出世。
解释运行效率低,为了提升代码的执行性能。JDK提供将字节码编译为机器代码的支持,编译在后台运行,通常成为JIT编译器。在执行过程中对执行效率高的代码进行编译,对执行不频繁的代码则继续采用解释的方式。编译的好处有哪些呢,让我们看看下面的例子:
1.方法内联
对于java语言来说,通常要调用多个方法完成功能。执行时要经历多次参数传递。采用方法内联的方式把调用的方法指令直接植入到当前方法中。
例如:
public void bb(){
   cc();
}
public void cc(){
  ...
}当编译时,如果cc编译完的字节数小于等于35字节,那么会演变成类似的结构
publicvoidbb(){
//cc内容
}
2.去虚拟化
去虚拟化是指在装载CLASS文件后,进行类层次的分析,如发现类中的方法只提供一个实现类,那么对于调用了此方法的代码,也可进行方法内联,从而提升执行的性能。
3.冗余消除
指在编译时,根据运行时的状况进行代码折叠或消除。
4.标量替换
用简单变量替换复合对象。如用int取代Integer
5.栈上分配
如果某个对象没有逃逸,那么直接在栈上直接创建该对象。
6.同步消除
如果发现同步对象未逃逸,那么也就没有同步的必要了。
相关推荐
  89467505    2020-05-08  
   82921934    2020-05-04  
   82921934    2020-02-18  
   84520193    2020-01-30  
   80991231    2019-11-04  
   85981936    2019-10-24  
   86123158    2019-09-08  
   86123158    2019-07-01  
   82921934    2019-06-27  
   cHeNjUiOr    2010-06-16  
   89921237    2019-06-05  
   magicandy    2019-02-14  
   86123158    2019-03-12  
   89921237    2019-03-09  
   89467505    2019-04-22  
   wangkuixing    2018-03-21  
   80234950    2017-09-10  
   cHeNjUiOr    2015-03-09  
   linuxweiyh    2015-02-02  
 