对Java平台的理解

1)  Java是一种面向对象的语言(封装,继承,多态),最显著的特性有两个方面:

  ----书写一次,到处运行(Write once,run anywhere)

    能够非常容易的获得跨平台的能力

  ----垃圾收集(GC,Garbage Collection)

    Java通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。

2) JRE(Java Runtime Environment),是指Java运行环境,包含了JVM和Java类库,以及一些模块等。

3) JDK(Java Development Kit) 是指JRE的一个超集,提供了更多工具,比如编译器Javac,各种诊断工具等。

4) 与平台无关性:

  ①我们开发的java源代码,首先通过javac编译成字节码(bytecode),也就是编译成.class文件。

       ②解析:.class文件经过JVM内嵌的解析器解析执行

  ③编译:存在JIT编译器(Just In Time Compile)把经常运行的代码作为热点代码编译与本地平台相关的机器码,并进行各种层次的优化。

  ④AOT编译器Java9 提供的直接将所有代码编译成机器码执行。

     ----javac是java语言编程编译器。全称java compiler。javac工具读有java语言编写的类和接口的定义,将他们编译成字节大妈的class文件。javac可以隐式编译一些没有在命令行中提及的源文件。用-verbose选项可跟踪自动编译。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及,但通过继承提供信息的类和接口。

  ----JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上方针模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。Java虚拟机在执行字节码时,把字节码解释成据图平台上的及其指令执行。这就是Java的能够“一次编译,到处运行”的原因

5) Java语言特性: 包括泛型,Lambda等语言特点;

6) 类库:包括集合、IO/NIO、网络、并发、安全等基础类库。

原文地址:https://www.cnblogs.com/baxianhua/p/9160870.html