JAVA的包装类?为什么要把基本数据类型包装成类?

2025-06-01 04:02:40

java为每种基本数据类型(primitive types)提供了对应的包装类(Wrapper Classes),它们属于引用类型(对象),位于java.lang包中。

byte - Byte

short - Short

int - Integer

long - Long

float - Float

double - Double

char - Character

boolean - Boolean

为什么需要包装类?

让基本数据类型也能面向对象:Java是面向对象的语言,但基本数据类型(如int、char等)不是对象。而某些场景(如集合类List、Map等)只能存储对象,不能直接存储基本类型。

提供更多的操作方法 :基本数据类型本身没有方法,而包装类提供了许多实用的方法,如:

Integer.parseInt("123")(字符串转int)

Double.compare(1.5, 2.0)(比较两个double值)

Character.isDigit('9')(判断是否是数字)

支持null值:基本数据类型不能为null,但包装类可以表示“无值”的情况。

泛型(Generics)支持:Java泛型(如List、Map)不支持基本类型,必须使用包装类

自动装箱(Autoboxing)和拆箱(Unboxing)

包装类的注意事项

== 比较的是对象引用,不是值:使用equals()比较值,而不是==(除非在缓存范围内,如Integer -128~127)。

可能引发NullPointerException:包装类可以为null,但拆箱时可能抛出异常

性能开销:包装类是对象,占用更多内存,频繁操作时可能影响性能(如大量数学计算优先用基本类型)。

怎样看 VR 成人影片?怂的不敢问?这里有你想知道的一切
为什么天天炫斗进不去