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

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

  • byte - Byte
  • short - Short
  • int - Integer
  • long - Long
  • float - Float
  • double - Double
  • char - Character
  • boolean - Boolean

为什么需要包装类?

  1. 让基本数据类型也能面向对象:Java是面向对象的语言,但基本数据类型(如int、char等)不是对象。而某些场景(如集合类List、Map等)只能存储对象,不能直接存储基本类型。
  2. 提供更多的操作方法 :基本数据类型本身没有方法,而包装类提供了许多实用的方法,如:
  • Integer.parseInt("123")(字符串转int)
  • Double.compare(1.5, 2.0)(比较两个double值)
  • Character.isDigit('9')(判断是否是数字)
  1. 支持null值:基本数据类型不能为null,但包装类可以表示“无值”的情况。
  2. 泛型(Generics)支持:Java泛型(如List、Map<K,V>)不支持基本类型,必须使用包装类
  3. 自动装箱(Autoboxing)和拆箱(Unboxing)

包装类的注意事项

  1. == 比较的是对象引用,不是值:使用equals()比较值,而不是==(除非在缓存范围内,如Integer -128~127)。
  2. 可能引发NullPointerException:包装类可以为null,但拆箱时可能抛出异常
  3. 性能开销:包装类是对象,占用更多内存,频繁操作时可能影响性能(如大量数学计算优先用基本类型)。
posted @ 2025-03-26 23:16  蒟蒻00  阅读(126)  评论(0)    收藏  举报