第1讲 谈谈你对Java平台的理解?

谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗?

答:

Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运
”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集
(GC, Garbage Collection),Java 通过垃圾收集器(Garbage Collector)回收分配内存,
大部分情况下,程序员不需要自己操心内存的分配和回收。
我们日常会接触到 JRE(Java Runtime Environment)或者 JDK(Java Development Kit)。
JRE,也就是 Java 运行环境,包含了 JVM 和 Java 类库,以及一些模块等。而 JDK 可以看作是
JRE 的一个超集,提供了更多工具,比如编译器、各种诊断工具等。 

 


 

对于“Java 是解释执行”这句话,这个说法不太准确。我们开发的 Java 的源代码,首先通过
Javac 编译成为字节码(bytecode),然后,在运行时,通过 Java 虚拟机(JVM)内嵌的解释
器将字节码转换成为最终的机器码。但是常见的 JVM,比如我们大多数情况使用的 Oracle JDK
提供的 Hotspot JVM,都提供了 JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,
JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是
解释执行了。


知识扩展

  • 对于Java平台的理解,可以从很多方面简明扼要的谈一下,例如:Java语言特性,包括泛型,Lambda等语言特性,基础类库,包括集合、IO/NIO、网络等。
  • 或者谈谈JVM的一些基础概念和机智,比如Java的类加载机制,常用版本JDK内嵌的Class-Loader,还有垃圾收集的基本原理。
  • 还有JDK包含哪些工具或者领域内其他工具等。

 一课一练

谈谈你对Java平台的理解。

 

答:

Java特性:

  • 面向对象(封装、继承、多态)
  • 平台无关性(JVM运行 .class文件)
  • 语言(泛型、Lambda)
  • 类库(集合、并发、网络、IO/NIO)
  • JRE(Java运行环境,JVM。类库)
  • JDK(Java并发工具,包括JRE,javac,诊断工具)
posted @ 2020-01-14 14:35  源问三生  阅读(149)  评论(0编辑  收藏  举报