↑↑↑ 欢迎 点赞、关注、收藏!!!,10 年 IT 行业老鸟,持续分享更多 IT 干货
注: 本笔记为 公司内部技术小组持续学习 2 年多时间 + 个人整理不下 5 次的结果产出。
目录
01 | 谈谈你对 Java 平台的理解?
问题
-
谈谈你对 Java 平台的理解?
-
“Java 是解释执行”,这句话对吗?
典型回答
-
Java 最显著的特性:
-
书写一次,到处运行(Write once,run anywhere)
-
垃圾收集(GC,Garbage Collection)
-
-
JRE(Java Runtime Environment)
-
包含了 JVM 和 Java 类库,及一些模块等。
-
-
JDK(Java Development Kit)
-
可以看作 JRE 的一个超集,提供了更多工具。
-
-
"Java 是解释执行" 这句话,不太准确。
-
java 源码 => 字节码(bytecode)=> 通过 JVM 转换成机器码。
-
Oracle JDK 提供的 Hotspot JVM,都提供了 JIT (Just-In-Time) 编译器,也就是常说的动态编译器,JIT 能够在运行时将热点代码编译成机器码。这种情况下部分代码就属于编译执行,而不是解释执行了。
-
考点分析
-
要表现出思维的深度和系统化,Java 知识理解得也比较全面。
扩展
-
对于 Java 平台的理解
-
Java 语言特性
-
基础类库
-
JVM 的一些基础概念和机制
-
类加载机制:Class-Loader
-
类加载大致过程:加载、验证、链接、初始化
-
垃圾收集:SerialGC、Parallel GC、CMS、G1
-
-
-
蓝图
-
-
Oracle Hotspot JVM 内置了两个不同的 JIT compiler
-
C1,client 模式,适用于对启动速度敏感的应用。如,Java 桌面应用。
-
C2,server 模式,适用于长时间运行的服务器端应用。
-
-
JVM 参数
-
“-Xint”,解释执行
-
“-Xcomp”,关闭解释器,不要进行解释执行
-
-
AOT(Ahead-of-Time Compilation)
-
直接将字节码编译成机器代码
-
# 编译 jaotc --output libHelloWorld.so HelloWorld.class jaotc --output libjava.base.so --module java.base # 启动 java -XX:AOTLibrary=./libHelloWorld.so,./libjava.base.so HelloWorld
-
参考地址:Java核心技术面试精讲_Java面试_Java基础-极客时间
↑↑↑ 欢迎 点赞、关注、收藏!!!,10 年 IT 行业老鸟,持续分享更多 IT 干货