【学习笔记】对于java平台的理解

Java是一个面向对象的语言,有两个比较明显的特点,一个是“书写一次,到处执行”另一个是“垃圾收集(GC)”。对于“Java是解释执行”这句话,其实并不是很准确。通过Javac编译成字节码,再通过java虚拟机(JVM)内嵌的解释器将字节码转换成最终需要的机器码。然而常见的JVM(Hotspot) 提供了JIT(Just-In-Time)编译器,也就是动态编译器,JIT能够在运行的时候将热点代码编译成字节码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。
在运行时,JVM会首先通过类加载器(Class-Loader)加载字节码,进行解释或者编译。如JDK 8中实际上就是解释与编译的一种混合模式。JVM运行有两个模式,Server模式和Client模式。Java 虚拟机启动时,可以指定不同的参数对运行模式进行选择。 比如,指定“-Xint”,就是告诉 JVM 只进行解释执行,不对代码进行编译,这种模式抛弃了 JIT 可能带来的性能优势。毕竟解释器(interpreter)是逐条读入,逐条解释运行的。与其相对应的,还有一个“-Xcomp”参数,这是告诉 JVM 关闭解释器,不要进行解释执行,或者叫作最大优化级别。此外,现在还有一种新型的编译方式AOT(Ahead-of-Time Compilation),感兴趣的话可以访问链接
http://openjdk.java.net/jeps/295

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值