Java 核心基础:语言特点、环境架构与八种基本数据类型
Java 的核心特点
在深入代码之前,理解 Java 的设计初衷很有必要。它主要具备四个显著特征:
- 面向对象:万物皆对象,封装、继承和多态构成了其核心范式。
- 跨平台:一次编写,到处运行,这得益于 JVM 的存在。
- 简单易学:语法相对简洁,去除了 C++ 中复杂的指针操作。
- 内存管理:自动垃圾回收(GC)减轻了开发者的负担。
JVM、JDK 与 JRE 的关系
这三个概念常被混淆,其实它们有明确的包含关系:
- JVM(Java 虚拟机):这是 Java 跨平台的灵魂。它负责将字节码编译并执行,同时承担内存管理和垃圾回收的任务。
- JDK(Java 开发工具包):面向开发者的完整套件。它不仅包含 JVM,还集成了编译器、调试器以及丰富的类库,是编写和运行 Java 程序的基础环境。
- JRE(Java 运行时环境):最小运行环境。由 JVM 加上一组核心类库组成,适合只需要运行程序而不需要开发的场景。
数据类型详解
八种基本数据类型
Java 提供了八种内置的基本类型,分为四类:
- 整型:
byte、short、int、long - 浮点型:
float、double - 字符型:
char - 布尔类型:
boolean
每种基本类型都有对应的包装类,例如 Byte、Short、Integer、Long、Float、Double、Character 和 Boolean。
基本类型与包装类型的区别
在实际开发中,这两者的选择直接影响性能和逻辑:
- 用途差异:基本类型常用于局部变量或常量定义;而方法参数、泛型或对象属性中更倾向于使用包装类型,因为基本类型无法用于泛型。
- 存储位置:基本类型的局部变量存在栈帧的局部变量表中,成员变量则在堆中。包装类型作为对象,实例必然存在于堆中。
- 空间占用:基本类型直接存储数值,空间极小。包装类型是对象,开销较大。此外,未赋值的成员变量中,基本类型有默认值(如 0),而包装类型为
null。 - 比较方式:基本类型比较的是值(
==),包装类型比较的是引用地址。若要比较包装类型的值,必须使用equals()方法。
装箱与拆箱
- 装箱:将基本类型转换为对应的包装类对象。
- 拆箱:将包装类对象还原为基本类型。 这一机制虽然方便,但在循环或大量计算时需注意性能损耗。
Integer 与 int 的关键区别
面试中常考这两个细节:
- 实例化需求:
int是预定义的类型,无需实例化; 是引用类型,需要实例化对象。

