Java基本数据类型与包装类严格一一对应:byte→Byte、short→Short、int→Integer、long→Long、float→Float、double→Double、char→Character、boolean→Boolean;除Integer和Character为特例外,其余均首字母大写;全部位于java.lang包,支持自动装箱拆箱、集合存储、null语义及工具方法。

Java里基本数据类型和包装类是一一配对的,不是随意命名的。理解这种对应关系,关键在于记住“基本类型变对象”这个逻辑:每个原始值都有一个专属的、带功能的“替身”。
八种基本类型与包装类严格一一对应
byte → Byte
short → Short
int → Integer(注意不是Int)
long → Long
float → Float
double → Double
char → Character(注意不是Char)
boolean → Boolean
所有包装类都在java.lang包下,不用import就能直接用。命名规律是:除int和char外,其余都是首字母大写;Integer和Character属于特例,得单独记。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
为什么必须有包装类?核心用途就三点
- 集合和泛型只认对象:List<Integer>合法,List<int>编译直接报错
- 表达“空”语义:int变量不能为null,但Integer可以,适合数据库字段为空、接口返回缺失值等场景
- 提供工具方法:Integer.parseInt("123")、Double.parseDouble("3.14")、Character.isLetter('a')这些静态方法,基本类型自己做不到
自动装箱和拆箱是怎么回事
这是JDK 5起加的语法糖,背后其实是方法调用:
立即学习“Java免费学习笔记(深入)”;
- 装箱(基本→包装):Integer i = 100; 等价于 Integer i = Integer.valueOf(100);
- 拆箱(包装→基本):int x = i; 等价于 int x = i.intValue();
- ⚠️ 拆箱遇到null会抛NullPointerException,这点容易踩坑
缓存机制影响==比较结果
部分包装类对小范围数值做了对象复用,导致==有时为true、有时为false:
- Integer缓存-128到127:Integer a = 100, b = 100; a == b 返回true
- 超出缓存范围:Integer c = 200, d = 200; c == d 返回false
- Byte/Short/Long/Character也缓存-128~127;Boolean只缓true/false两个;Float/Double不缓存
- 安全比较一律用equals(),别依赖==

















