java知识点总结

1.JDK和JRE的区别:
JDK就是Java Development Kit ,有JDK就能开发程序,把.java文件编译成.class文件并打包成.jar文件;JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。
2.java的运行原理:
java程序经过编译器编译后生成字节码文件*.class,字节码文件交给虚拟机,由虚拟机来解释执行,然后虚拟机把每一条需要执行的字节码送给解释器,解释器来解释字节码文件的内容,然后将这些字节码翻译成本地计算机的机器代码,最后在计算机上运行。
3.什么是JVM:
JVM即java虚拟机,是java程序与底层操作系统的连接核心,可以看成是一台虚拟的计算机。JVM的下方是移植接口,移植接口有适配器(依赖于平台的部分)和java操作系统组成;上方是java的基本类库和扩展类库及它们的API 。
4.JVM的运行流程:
装载(查找和导入.class文件)——>链接(检查.class文件的正确性,然后JVM为变量分配内存,设置默认值等)——>初始化(对类中声明的静态初始化函数和静态域的初始化构造方法的执行)
其中链接又分来校验(检查被装载的主类的符号和语义是否正确)、准备(创建类或接口的静态域以及把这些域初始化为标准的默认值)、解析(负责检查主类对其它类或接口的符号引用)。
5.java编译器:
java编译器分为:
(1)前端编译器,(将.java文件编译为.class文件,即javac);
(2)JIT(just in time compiler)编译器,(JVM后端运行期编译器,把字节码转换为机器码);
(3)AOT(ahead of time coppiler)编译器,(直接把.java文件转换为本地机器码的过程)。
6.java的类加载机制:
.class文件装载进JVM中后,在JVM中形成一份描述class结构的元信息对象,JVM通过该元信息对象可以获知class的结构信息:如构造函数,属性,方法等,虚拟机把描述类的数据从.class文件加载到内存,并对数据进行校验,准备,解析及初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。

你可能感兴趣的:(java知识点)