作者:大明宫巴菲特 链接:https://www.nowcoder.com/discuss/447742?channel=-1&source_id=discuss_terminal_discuss_sim_nctrack 来源:牛客网

之前总结了大概9万字,更新了部分内容。为了方便背诵,以问答形式重新缩减到6万7左右,方便背诵。


Java 基础 40

语言特性 12

Q1:Java 语言的优点?

① 平台无关性,摆脱硬件束缚,“一次编写,到处运行”。

② 相对安全的内存管理和访问机制,避免大部分内存泄漏和指针越界。

③ 热点代码检测和运行时编译及优化,使程序随运行时间增长获得更高性能。

④ 完善的应用程序接口,支持第三方类库。


Q2:Java 如何实现平台无关?

JVM: Java 编译器可生成与计算机体系结构无关的字节码指令,字节码文件不仅可以轻易地在任何机器上解释执行,还可以动态地转换成本地机器代码,转换是由 JVM 实现的,JVM 是平台相关的,屏蔽了不同操作系统的差异。

语言规范: 基本数据类型大小有明确规定,例如 int 永远为 32 位,而 C/C++ 中可能是 16 位、32 位,也可能是编译器开发商指定的其他大小。Java 中数值类型有固定字节数,二进制数据以固定格式存储和传输,字符串采用标准的 Unicode 格式存储。


Q3:JDK 和 JRE 的区别?

JDK: Java Development Kit,开发工具包。提供了编译运行 Java 程序的各种工具,包括编译器、JRE 及常用类库,是 JAVA 核心。

JRE: Java Runtime Environment,运行时环境,运行 Java 程序的必要环境,包括 JVM、核心类库、核心配置工具。


Q4:Java 按值调用还是引用调用?