Java平台基础

Java平台的两个特点:

1、一次编译、到处执行的跨平台特性

2、自动垃圾回收GC机制

Java语言的执行方式是编译执行还是解释执行?

先看基本定义:

编译型语言:把做好的源程序全部编译成二进制代码的可运行程序,然后可直接运行这个程序。执行速度快、效率高;依靠编译器、跨平台性差。


解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束。执行速度慢、效率低;依靠解释器、跨平台性好。

而对于Java语言:JAVA的源代码首先被编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码(之所以能一次编译、到处执行)

结论:Java兼具编译型语言与解释型语言的特点

更具体的说:

  

Java JIT(just in time)即时编译器是sun公司(现已被Oracle收购)采用了Hotspot  VM虚拟机取代其开发的Classic VM和Exact VM之后引入的一项技术,目的在于提高java程序的性能。这里说的编译器与通常说的javac编译器不同,JIT编译器它是将字节码编译为硬件可执行的机器码的。

JIT并不一定总能提高程序的执行效率甚至适得其反,这很大一部分取决于开发人员所写的程序质量,作为优秀的工程师应该会写出对JIT友好的程序。

以上整个java应用程序的执行过程如下:

1、源代码经javac编译成字节码class文件

2、程序字节码经过JIT进行判断,是否属于“热点代码”(多次调用的方法,或循环等)

3、如是,走JIT编译为具体硬件处理器(如sparc、intel)机器码

4、如否,则直接由解释器解释执行

5、操作系统及类库调用

6、硬件

特别的例子:

BEA公司(现已被Oracle收购)为服务器硬件和服务端应用专门打造的高度优化的虚拟机—Jrockit VM,由于面向服务端应用,所以它并不在意和关注程序的启动速度,jrockit并不实现解释器,而是将所有代码都交由jit做即时编译执行

三大虚拟机:

HotSpot、JRockit、IBM JVM

1、Hotspot虚拟机:

有两种模式,一是-client,二是-server

1、-client模式下是逐条解释执行的

2、-server模式下先解释执行,然后jvm统计执行热点,将这些热点代码仔细优化编译成本地代码,然后执行本地代码,当这个热点不再是热点的时候,释放编译的代码,重新解释执行

采用分代垃圾回收

2、JRockit虚拟机

业界性能最高的Java虚拟机

3、IBM虚拟机

被IBMWebsphere使用

猜你喜欢

转载自www.cnblogs.com/yezhaohui/p/8998437.html