1.Java 程序运行主要包括哪两步?
01、 使用 javac 编译 java 源文件,生成 *.class 文件;
02、 使用 java 解释器执行生成的 *.class 文件。
2.Java 的 “一次编译到处运行” 又是怎么做到的呢?
虚拟机可理解成一个以字节码为机器指令的 CPU,通过模拟真实机器来运行 java 程序。对于不同运行平台,有不同的虚拟机。java 虚拟机(Java Virtual Machine 即 JVM)机制屏蔽了底层运行平台的差别,即 JVM 在执行字节码时,把字节码解释成具体平台上的机器指令执行,所以实现了 “一次编译,随处运行”。
3.Java 语言是跨平台(主要指操作系统等)的吗?为什么?
是的。所谓跨平台性是指 java 编写的程序,一次编译后可在多个系统平台运行。Java 程序之所以能够跨平台运行,是因为它根本就不直接运行在任何底层平台上,而是需要在哪里运行就在哪里 (如 Wind10 平台) 事先准备好自己的 Java 平台。说白了 就是利用了 java 的可移植性的特点:java 程序不必重新编译就可以移植到网络的不同机器上,同时 java 的类库中也实现了与不同平台的接口,使这些类库可以移植。
4. 什么是 Java 虚拟机?其实现原理是什么?Java 程序执行的过程是怎么样的?
Java 虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆、一个方法区域(了解就可以,没有太大用处,除非你要自己做一个虚拟机)。 Java 虚拟机就是一个小计算机,有自己的指令集,有自己的文件系统,管理内部的表和数据,负责读取 class 文件里面字节码,然后转换成不同操作系统的 CPU 指令,从而使得 Java 程序在不同的操作系统上顺利的跑起来。