美文网首页
基本型和基本型封装型进行“==”运算符的比较

基本型和基本型封装型进行“==”运算符的比较

作者: q若水 | 来源:发表于2018-08-21 17:18 被阅读19次

    1、基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较, 因此Integer(0)会自动拆箱为int类型再进行比较,如1,4行,显然返回true。
    2、 另外两个Integer对象进行“==”比较时,如果有一方的Integer对象是new获得的,返回false,因为比较的是两个对象的地址,如5,6。
    3、两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true,如8,10。
    4、基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,若类型不同返回false,
    若装箱后类型相同,则比较值,如果值相同,则返回true,否则返回false。如:

    public static void main(String[] args) {

    int a=257;
    Integer b=257;
    Integer c=257;
    Integer d=new Integer(a);
    Integer d1=new Integer(a);
    
    Integer b2=57;
    Integer c2=57;
    
    System.out.println(a==b);//1
    System.out.println(b==c);//2
    System.out.println(b2==c2);//3
    System.out.println(a==d);//4
    System.out.println(b==d);//5
    System.out.println(d==d1);//6
    /**以上输出结果:
     * true
       false
       true
       true
       false
       false
    
     */
    System.out.println();
    //System.out.println(a.equals(b));  编译出错,基本型不能调用equals()
    System.out.println(b.equals(257.0));  //7
    System.out.println(b.equals(c));       //8
    System.out.println(b.equals(a));      //9
    System.out.println(b.equals(d));    //10
    
    
    /**
     * 以上输出结果:
    

    false
    true
    true
    true

     */

    相关文章

      网友评论

          本文标题:基本型和基本型封装型进行“==”运算符的比较

          本文链接:https://www.haomeiwen.com/subject/gimjiftx.html