谈谈你对Java平台的理解?

Java 本身是一种面向对象的语言,具有两大显著特征:
1、书写一次,到处运行 (Write once,run anywhere)
表示的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机的存在密不可分,可在不同的环境中运行。比如说Windows平台和Linux平台都有相应的JDK,安装好JDK后也就有了Java语言的运行环境。其实Java语言本身与其他的编程语言没有特别大的差异,并不是说Java语言可以跨平台,而是在不同的平台都有可以让Java语言运行的环境而已,所以才有了Java一次编译,到处运行这样的效果。
2、垃圾收集 (GC Garbage [ˈgɑ:bɪdʒ] Collection)
java通过垃圾收集器回收分配内存。

我们会经常接触到:
1、JRE (Java Runtime Environment) : java运行环境,包含JVM和java类库,以及一些模板等。
2、JDK (Java Development Kit) : JDK可以看作是JRE的一个超集,提供了更多的工具,比如编译器、各种诊断工具等。
对于“Java 是解释执行”这句话,这个说法不太准确。我们开发的 Java 的源代码,首先通过 Javac 编译成为字节码(bytecode),然后,在运行时,通过 Java 虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。但是常见的 JVM,比如我们大多数情况使用的 Oracle JDK 提供的 Hotspot JVM,都提供了 JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。

知识拓展

  • java语言特性,包括泛型、Lambda
  • 基础类库,包括集合、IO/NIO、网络、并发、安全等基础类库。

谈谈你对Java平台的理解?