面向对象通识12(包装类)

Java有8个基本类型:byte\short\int\long\float\double\char\boolean

  • 不能当成对象使用

  • 不能接受null值(只能赋值给引用类型)

为了解决上述问题,Java为这8个基本类型准备了对应的包装类——可以将基本类型包装成对象

byte--Byte

short--Short

int--Integer

long--Long

float--Float

char--Character

boolean--Boolean

规律——完整的名称首字母大写,不完整的补全全程并且首字母大写

自动装箱

基本类型的值可以当成包装类型的实例使用——如下

  1. public class 包装类 {
  2. public static void main(String[] args) {
  3. //2可以自动装箱成Integer
  4. Integer a=2;
  5. //2.3自动装箱Double,Double向上转型为Object
  6. Object s=2.3;
  7. }
  8. }

自动拆箱

包装类的实例也可以当做基本类型使用

上述两个自动功能可以让包装类关键字和基本类型关键字混用

通常而言,建议使用包装类来声明变量——

  • 基本类型功能具有的功能它具有

  • 也可以当做对象使用

  • 也可以接受null
    问题:占用相对较大的内存

包装类中的方法

parse要转换的基本类型

方法可以将字符串转换成对应的基本类型值

举例:

  1. public class Parse {
  2. public static void main(String[] args) {
  3. String a = "233";
  4. int b = Integer.parseInt(a);
  5. System.out.println(b);
  6. }
  7. }
  8. /*
  9. 233
  10. */

如果被转换的基本类型不符合要转换的基本类型

NumberFormatException

  1. public class 面试题 {
  2. public static void main(String[] args) {
  3. Integer a=20;//在-128-127中缓存
  4. Integer b=20;//直接用缓存中对象
  5. System.out.println(a==b);
  6. Integer c=200;//在-128-127之外不缓存
  7. Integer d=200;//创建新的对象
  8. System.out.println(c==d);
  9. }
  10. }
  11. /*
  12. true
  13. false
  14. */