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

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

 */
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,252评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,837评论 18 399
  • 成年人和孩子的分别就是,面对压力时的种种不同。孩子心态面对压力,要找一个能抗的人来面对压力,但成年人不同,成年人可...
    心甲阅读 264评论 1 0
  • 莉莉不喜欢连多重,甚至输入法都知道了这件事以致于在数字鸽鸽问期末需不需要做报告的时候…… 但是六重竹笋实在是太帅了...
    Ir1d阅读 711评论 1 1