java是解释型语言,但是为了加快java的运行速度,java编译器横空出世。
解释运行效率低,为了提升代码的执行性能。JDK提供将字节码编译为机器代码的支持,编译在后台运行,通常成为JIT编译器。在执行过程中对执行效率高的代码进行编译,对执行不频繁的代码则继续采用解释的方式。编译的好处有哪些呢,让我们看看下面的例子:
1.方法内联
对于java语言来说,通常要调用多个方法完成功能。执行时要经历多次参数传递。采用方法内联的方式把调用的方法指令直接植入到当前方法中。
例如:
public void bb(){
cc();
}
public void cc(){
...
}
当编译时,如果cc编译完的字节数小于等于35字节,那么会演变成类似的结构
public void bb(){
//cc内容
}
2.去虚拟化
去虚拟化是指在装载CLASS文件后,进行类层次的分析,如发现类中的方法只提供一个实现类,那么对于调用了此方法的代码,也可进行方法内联,从而提升执行的性能。
3.冗余消除
指在编译时,根据运行时的状况进行代码折叠或消除。
4.标量替换
用简单变量替换复合对象。如用int取代Integer
5.栈上分配
如果某个对象没有逃逸,那么直接在栈上直接创建该对象。
6.同步消除
如果发现同步对象未逃逸,那么也就没有同步的必要了。
分享到:
相关推荐
java编译器
对Java的几种编译器的介绍以及下载地址
Java编译器 Eclipse IDE for Java Developers - 2021-03
windows下的java编译器和jdk.zip
eclipseJAVA编译器安装文件,eclipse,java相关开发软件。
一个简单的JAVA编译器的原代码,对做课设或毕设的同学很有帮助!
一个C#写的java编译器, 主要是一个简单的文本编辑器, dos命令的运行,字符串的拆分,java文件的编译与执行. 适合于c#初学者 如果有什么好的建议,分享一下,好吗
java编译器 (源代码+gui图形界面+英文报告) 包括词法分析,语法分析 三地址代码生成。 可以先看看http://blog.chinaunix.net/u/21684/showart_218863.html
我自己写的java的编译器界面 包的路径为com.baoyabing.gui
本程序使用的都是黑窗口模式,换了背景色,调用的都是原编译器在DOS模式下的javac和java程序。虽然比不上Eclipse的集成度,但个人测试了几十个JAVA程序,感觉很上手,所以奉献给大家,资源分不多,感谢大家支持!【另...
熊熊Java编译器是免费的绿色软件,欢迎使用。 熊熊Java编译器 v1.07 What's new: ================== 1.系统皮肤全新更换,更简洁美观; 2.新皮肤具有容错性,故取消了窗口高度偏差调整; 3.支持...
minijava编译器, minijava->piglet->spiglet->mips, spiglet->mips这一步有bug
因为Javac源代码放在了OPENJDK中,不是很容易找到,因此上传一份到CSDN中
java编译器gjc源码 Java编译器源码 java编译环境 -GJC source java compiler java compiling environment java compiler code java compiler Source
编译原理课程的最终实验,内容包含了C语言为宿主语言的Java词法分析器和语法语义分析,两部分的源代码和测试用例和实验报告。
在手机上使用的Java编译器,界面也很不错很有开发的欲望*-*
java编译器源代码.rar
用UE配置java编译器,适合编写JAVA程序时自动编译和运行程序。
plx java 编译器 源码 编译实践大作业