一、以下关于Java的运行机制中描述正确的是:13456
- ClassLoader 是 JVM 实现的一部分
- Java 虚拟机逐行读取并执行Java代码
- Java 编译器会将程序编译为 Java 虚拟机可以执行的字节码
- Java 虚拟机(Java Virutal Machine)简称 JVM ,用于执行 Java 字节码
- Java 运行时环境(Java Runtime Evironment)简称 JRE ,用于运行 Java 程序,包含 JVM
- Java 开发工具包(Java Development Kit)用于开发Java程序,包含JRE和 Java 编译工等
1.ClassLoader从上到下bootstrap,extension,system,custom,当需要加载类时,从下往上询问,父加载器可以加载则父加载器加载,不能则由子加载器加载(双亲委派机制)
2.JVM无法直接读取java代码,需要先编译后解码在读取
3.同2
4.同2
5.包含关系:JDK(java开发工具包)>JRE(java运行时环境)>JVM(java虚拟机), 其中, JDK = JRE + Java编译工具,JRE = JVM + Java核心类库
6.同5
二、
关于 JAVA HOME 设置,正确的是:
- 通过设定 JAVA HOME 变量和 PATH 变量,可以在同一台机器上的多个不同版本的 JAVA 系统中选择使用
- 在 Linux/Unix Shell 环境中,使用 $JAVA_HONME 系统变量,在 WINDOWS 批处理环境,使用 %JAVA_HOME% ,它们表示同一个变量名
- Java 系统会根据 Java Home 推导一些环境设置,例如库路径
- JAVA_HOME 中可以包含多个不同版本的 JAVA 环境路径,系统自动选择
解析123
电脑里有多个不同版本jdk使用%JAVA HOME%系统是无法自动匹配找到的 必须得用绝对路径
三、关于Maven
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
maven有三个生命周期:clean、site以及其他。题中test和package是在一个生命周期中的,只要执行mvn package 就会依次执行了resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。package只是打包,不将包发布到本地maven仓库和远程maven私服仓库中;install是发布到本地maven仓库,不发布到远程仓库;deploy是发布到本地maven仓库和远程maven私服仓库中



