基本类型与包装类型
Integer、Double、Boolean 等类型
基本类型与包装类型 是 CoddyKit 上的免费 Java Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。
值的两个世界
Java 有基本类型,例如 int、double 和 boolean,可以直接保存原始值。Java 还有包装类,例如 Integer、Double 和 Boolean,可以将这些值包装在对象中。
基本类型速度快且占用空间小。包装类型是完整的对象,可以存在于集合中,也可以是 null。
八种基本类型
Java 确切地定义了八种基本类型:
byte、short、int、long用于表示整数float、double用于表示小数char用于表示单个字符boolean用于表示真或假
每种类型在 java.lang 包中都有对应的包装类。
对应的包装类名称
大多数包装类名称只需将基本类型名称的首字母大写,但有两个例外:
int变为 Integerchar变为字符boolean变为 Boolean,double变为 Double,其他类型依此类推
让我们输出几个包装类型。
public class Main {
public static void main(String[] args) {
Integer count = 42;
Double price = 9.99;
Boolean active = true;
Character grade = 'A';
System.out.println(count);
System.out.println(price);
System.out.println(active);
System.out.println(grade);
}
}包装类型是对象
基本类型保存一个值。包装类型是对象引用,因此可以使用 null 表示它什么也不指向。
当某个值可能缺失时,包装类型就很有用,例如允许 NULL 的数据库列。
public class Main {
public static void main(String[] args) {
Integer missing = null;
int present = 5;
System.out.println(missing);
System.out.println(present);
}
}有用的常量
包装类提供了许多实用的常量。Integer.MAX_VALUE 和 Integer.MIN_VALUE 分别表示最大和最小的 int 值。
这比您自己记住这些数字容易得多。
public class Main {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
}
}辅助方法
包装类还是一组静态辅助方法的工具箱。例如,Integer.toBinaryString 会以二进制形式显示数字,而 Integer.max 会返回两个值中较大的一个。
public class Main {
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(10));
System.out.println(Integer.max(7, 3));
System.out.println(Integer.toHexString(255));
}
}集合为何需要包装类型
Java 泛型只能使用对象,不能使用基本类型。您不能写出 List<int>。
因此应使用 List<Integer>。包装类型可以让基本类型的值适应集合所要求的对象世界。
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
System.out.println(numbers);
}
}比较包装类型的值
要比较两个包装类型内部的数值,请使用 .equals() 或 .compareTo(),而不要对对象本身使用数学运算符。
compareTo 会返回负数、零或正数。
public class Main {
public static void main(String[] args) {
Integer a = 100;
Integer b = 200;
System.out.println(a.equals(b));
System.out.println(a.compareTo(b));
}
}内存与性能
基本类型不需要对象开销,因此占用更少内存,运行速度也更快。单个 int 只包含 4 字节的原始数据。
包装类型对象还带有额外的头部信息。在处理数百万个值的紧凑循环中,应优先使用基本类型。
默认值不同
未初始化的基本类型字段默认为类似零的值:int 为 0,boolean 为假。
未初始化的包装类型字段默认为 null。当您之后尝试使用该值时,这一差异就很重要。
public class Main {
static int primitiveField;
static Integer wrapperField;
public static void main(String[] args) {
System.out.println(primitiveField);
System.out.println(wrapperField);
}
}如何在两者之间选择
一个简单的规则是:为了获得更好的性能和清晰度,默认使用基本类型。当您需要集合元素、泛型类型,或需要用 null 表示值缺失时,再切换到包装类型。
快速检查
测试您对基本类型和包装类型的理解。
回顾
您已经了解了基本类型和包装类型之间的区别:
- 八种基本类型分别对应八个包装类,例如
Integer和Double - 包装类型是对象,可以是
null,并且可以放入集合 - 基本类型速度更快、占用空间更少,因此应默认使用它们
- 包装类还提供了实用的常量和辅助方法
常见问题解答
「基本类型与包装类型」课时是免费的吗?
是的 — 「基本类型与包装类型」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。
「基本类型与包装类型」这节课中我会学到什么?
Integer、Double、Boolean 等类型 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Java Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「基本类型与包装类型」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Java Academy 课中编写并运行代码吗?
能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 基本类型与包装类型
- 自动装箱与拆箱
- 解析与 Valueof
- 自动装箱陷阱