JAVA的包装类?为什么要把基本数据类型包装成类?
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<K,V>)不支持基本类型,必须使用包装类 - 自动装箱(Autoboxing)和拆箱(Unboxing)
包装类的注意事项
- == 比较的是对象引用,不是值:使用equals()比较值,而不是==(除非在缓存范围内,如Integer -128~127)。
- 可能引发NullPointerException:包装类可以为null,但拆箱时可能抛出异常
- 性能开销:包装类是对象,占用更多内存,频繁操作时可能影响性能(如大量数学计算优先用基本类型)。

浙公网安备 33010602011771号