Java基本类型和包装类

  • 基本类型。

    byte、short、int、long、float、double、char和boolean。

  • 包装类。

    Byte、Short、Integer、Long、Float、Double、Character和Boolean。

  • 基本类型所占字节数及默认值。

    基本类型 所占字节 取值范围 默认值
    byte 1 27-2^{7}~2712^{7}-1 0
    short 2 215-2^{15}~21512^{15}-1 0
    int 4 231-2^{31}~23112^{31}-1 0
    long 8 263-2^{63}~26312^{63}-1 0
    float 4 3.402823e+38 ~ 1.401298e-45 0.0F
    double 8 1.797693e+308~ 4.9000000e-324 0.0D
    char 2 ‘’
    boolean 1 0/1 false
  • 包装类默认值为null。

  • 基本类型==比较的是值。

    1
    2
    3
    byte a = 1;
    byte b = 1;
    System.out.println(a == b); // true
  • 包装类==比较的是地址,两个new出来的包装类,会在堆中生成一个对象,==操作返回false。

    1
    2
    3
    Integer a = new Integer(1);
    Integer b = new Integer(1);
    System.out.println(a == b); // false
  • 一个new出来的包装类和一个非new出来的包装类进行==比较,两者地址不同,返回false。

    1
    2
    Integer a = 1;
    Integer b = new Integer(1);
  • 包装类除了Float和Double,其他的类型的值保存在常量池中,Integer在常量池中缓存的值的范围是[-128,127],超过这个范围会重新new一个对象,放在堆中。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Character a = 'a';
    Character b = 'a';
    System.out.println(a == b); // true

    Float c = 0.1F;
    Float d = 0.1F;
    System.out.println(c == d); // false

    Integer e = 1;
    Integer f = 1;
    System.out.println(e == f); // true

    Integer g = 128;
    Integer h = 128;
    System.out.println(g == h); // false
  • 基本类型和对应的包装类进行比较,包装类会自动拆箱,==比较两者的值。

    1
    2
    3
    int a = 1;
    Integer b = 1;
    System.out.println(a == b); // true
  • 不同的基本类型进行==比较,会发生隐式类型转换,比较两者的值。

    1
    2
    3
    int a = 1;
    byte b = 1;
    System.out.println(a == b); // true,byte会转为int
  • 不同的包装类型不能进行==比较,会发生编译错误。

    1
    2
    3
    Integer a = 1;
    Byte b = 1;
    System.out.println(a == b); // error,不可比较的类型:java.lang.Integer和java.lang.Byte
-------------本文结束感谢您的阅读-------------

本文标题:Java基本类型和包装类

文章作者:huihui

发布时间:2018年10月24日 - 00:10

最后更新:2019年02月14日 - 19:02

原始链接:http://101.200.47.120:8011/2018/10/24/Java基本类型和包装类/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。