Java-谈谈对Java平台的理解

时间:2024-01-18 13:52:32

问题

  1. 谈谈对 Java 平台的理解
  2. Java是解释执行的 这句话对么
  3. 程序的编译与解释有什么区别

Java 平台的了解

Java的主要特点是两个,

  1. 编写一次到处运行 Write once, run anywhere
  2. 具有垃圾回收

编写一次到处运行是说通过 JVM这一层抽象可以让 Java 代码在不同的 CPU 平台转换成相同的字节码, 然后通过不同平台定制的虚拟机来执行字节码. 这也就是通过在代码和目标平台增加抽象层来解决问题.

Java 通过垃圾回收器来回收内存. 不需要程序员来显示的释放对象. 但是也增加了消耗, 使用不当会产生内存泄漏的问题.

Java是解释执行的 这句话对么

这句话不完全对.
通常来说, Java代码先有 javac 编译成平台无关的字节码, 然后再有 jvm 解释执行.
在 Hotspot Jvm 中有提供 JIT编译器, 有一些热点代码编译成机器码. 这部分热点代码属于编译执行.

程序的编译与解释有什么区别

编译和解释的区别在于代码什么时候翻译成目标CPU系统的机器码
程序的编译相当于将全部代码转换成机器码, 然后逐行执行机器码.

程序的解释相当于增加了一种中间代码, 这种代码在运行过程中才被翻译成目标CPU指令.

总之:
1,编译型语言在编译过程中生成目标平台的指令,解释型语言在运行过程中才生成目标平台的指令。
2,虚拟机的任务是在运行过程中将中间代码翻译成目标平台的指令。