1、Java的特点:
1、一次编译,多平台运行:
Java首先将程序编译为字节码,也就是class文件,然后通过JVM也就是Java虚拟机对字节码进行解释运行。不同的平台对应着不同的JVM,将字节码解释为不同平台对应的机器码执行。Java是一种解释语言。
2、GC 垃圾回收机制
Java内置了垃圾回收器,不需要程序员手动回收垃圾。
2、JDK和JRE的区别
JDK:Java Development Kit,Java开发工具包。提供了编译、调试等工具来帮助开发。
JRE:Java Runtime Environment ,Java运行环境,包括了Java核心类库以及JVM,来运行Java程序。
如果只需要运行Java程序的话,安装JRE就行了。如果要编写Java程序,JDK需要被安装。
Java11之后,JRE合并到了JDK中,JRE退出历史舞台!
3、解释执行、JIT、AOT区别
Java一开始只支持解释执行,执行过程为:
1、将原程序编译为字节码文件
2、将字节码文件加载到JVM中,加载一行,解释执行一行。
解释执行的缺点:
解释执行不会生成目标机器码文件。当下次执行到同样代码的时候还是会重新解释执行。
针对解释执行的缺点,Java引入了JIT(Just In Time)。JIT的做法是将热点代码,就是在运行过程中将执行频繁的代码编译成机器码,存到内存中,在下次执行时,直接执行机器码,提高了程序的执行效率。
AOT:静态编译,在程序运行之间就将程序编译为机器码文件,运行效率快,编译时间长,但是牺牲了跨平台的特性!