网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1013|回复: 0
打印 上一主题 下一主题

基本类型和包装类对象使用 == 和 equals进行比较的结果

[复制链接]

271

主题

284

帖子

1243

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1243

最佳新人活跃会员热心会员突出贡献优秀版主

跳转到指定楼层
楼主
发表于 2019-8-2 10:20:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、值不同,使用==和equals比较都返回false

2、值相同,使用==比较:基本类型-基本类型、基本类型-包装对象返回true

                                        包装对象-包装对象返回false

                                        缓存中去的包装对象比较返回true(原因是jdk缓存部分常见的Integer对象)
        Integer i1 = 100;
        Integer i2 = 100;
        Integer i3 = 200;
        Integer i4 = 200;

        System.out.println(i1==i2); //打印true
        System.out.println(i3==i4); //打印false

使用equals比较:包装对象-基本类型返回true

                           包装对象-包装对象返回false

3、不同类型的对象对比,返回 false

JDK1.8,实验代码

                byte b1 = 127;

                Byte b2 = new Byte("127");

                Byte b3 = new Byte("127");

                System.out.println("Byte 基本类型和包装对象使用 == 比较 : " + (b1 == b2));

                System.out.println("Byte 基本类型和包装对象使用 equals 比较 : " + b2.equals(b1));

                System.out.println("Byte 包装对象和包装对象使用 == 比较 : " + (b2 == b3));

                System.out.println("Byte 包装对象和包装对象使用 equals 比较 : " + b2.equals(b3));

                System.out.println();

               

                short s1 = 12;

                Short s2 = new Short("12");

                Short s3 = new Short("12");

                System.out.println("Short 基本类型和包装对象使用 == 比较 : " + (s1 == s2));

                System.out.println("Short 基本类型和包装对象使用 equals 比较 : " + s2.equals(s1));

                System.out.println("Short 包装对象和包装对象使用 == 比较 : " + (s2 == s3));

                System.out.println("Short 包装对象和包装对象使用 equals 比较 : " + s2.equals(s3));

                System.out.println();

               

                char c1 = 'A';

                Character c2 = new Character('A');

                Character c3 = new Character('A');

                System.out.println("Character 基本类型和包装对象使用 == 比较 : " + (c1 == c2));

                System.out.println("Character 基本类型和包装对象使用 equals 比较 : " + c2.equals(c1));

                System.out.println("Character 包装对象和包装对象使用 == 比较 : " + (c2 == c3));

                System.out.println("Character 包装对象和包装对象使用 equals 比较 : " + c2.equals(c3));

                System.out.println();

               

                int i1 = 10000;

                Integer i2 = new Integer(10000);

                Integer i3 = new Integer(10000);

                System.out.println("Integer 基本类型和包装对象使用 == 比较 : " + (i1 == i2));

                System.out.println("Integer 基本类型和包装对象使用 equals 比较 : " + i2.equals(i1));

                System.out.println("Integer 包装对象和包装对象使用 == 比较 : " + (i2 == i3));

                System.out.println("Integer 包装对象和包装对象使用 equals 比较 : " + i2.equals(i3));

                System.out.println();

               

                long l1 = 1000000000000000L;

                Long l2 = new Long("1000000000000000");

                Long l3 = new Long("1000000000000000");

                System.out.println("Long 基本类型和包装对象使用 == 比较 : " + (l1 == l2));

                System.out.println("Long 基本类型和包装对象使用 equals 比较 : " + l2.equals(l1));

                System.out.println("Long 包装对象和包装对象使用 == 比较 : " + (l2 == l3));

                System.out.println("Long 包装对象和包装对象使用 equals 比较 : " + l2.equals(l3));

                System.out.println();

               

                float f1 = 10000.111F;

                Float f2 = new Float("10000.111");

                Float f3 = new Float("10000.111");

                System.out.println("Float 基本类型和包装对象使用 == 比较 : " + (f1 == f2));

                System.out.println("Float 基本类型和包装对象使用 equals 比较 : " + f2.equals(f1));

                System.out.println("Float 包装对象和包装对象使用 == 比较 : " + (f2 == f3));

                System.out.println("Float 包装对象和包装对象使用 equals 比较 : " + f2.equals(f3));

                System.out.println();

               

                double d1 = 10000.111;

                Double d2 = new Double("10000.111");

                Double d3 = new Double("10000.111");

                System.out.println("Double 基本类型和包装对象使用 == 比较 : " + (d1 == d2));

                System.out.println("Double 基本类型和包装对象使用 equals 比较 : " + d2.equals(d1));

                System.out.println("Double 包装对象和包装对象使用 == 比较 : " + (d2 == d3));

                System.out.println("Double 包装对象和包装对象使用 equals 比较 : " + d2.equals(d3));

                System.out.println();

               

                boolean bl1 = true;

                Boolean bl2 = new Boolean("true");

                Boolean bl3 = new Boolean("true");

                System.out.println("Boolean 基本类型和包装对象使用 == 比较 : " + (bl1 == bl2));

                System.out.println("Boolean 基本类型和包装对象使用 equals 比较 : " + bl2.equals(bl1));

                System.out.println("Boolean 包装对象和包装对象使用 == 比较 : " + (bl2 == bl3));

                System.out.println("Boolean 包装对象和包装对象使用 equals 比较 : " + bl2.equals(bl3));

运行结果

Byte 基本类型和包装对象使用 == 比较 : true

Byte 基本类型和包装对象使用 equals 比较 : true

Byte 包装对象和包装对象使用 == 比较 : false

Byte 包装对象和包装对象使用 equals 比较 : true

Short 基本类型和包装对象使用 == 比较 : true

Short 基本类型和包装对象使用 equals 比较 : true

Short 包装对象和包装对象使用 == 比较 : false

Short 包装对象和包装对象使用 equals 比较 : true

Character 基本类型和包装对象使用 == 比较 : true

Character 基本类型和包装对象使用 equals 比较 : true

Character 包装对象和包装对象使用 == 比较 : false

Character 包装对象和包装对象使用 equals 比较 : true

Integer 基本类型和包装对象使用 == 比较 : true

Integer 基本类型和包装对象使用 equals 比较 : true

Integer 包装对象和包装对象使用 == 比较 : false

Integer 包装对象和包装对象使用 equals 比较 : true

Long 基本类型和包装对象使用 == 比较 : true

Long 基本类型和包装对象使用 equals 比较 : true

Long 包装对象和包装对象使用 == 比较 : false

Long 包装对象和包装对象使用 equals 比较 : true

Float 基本类型和包装对象使用 == 比较 : true

Float 基本类型和包装对象使用 equals 比较 : true

Float 包装对象和包装对象使用 == 比较 : false

Float 包装对象和包装对象使用 equals 比较 : true

Double 基本类型和包装对象使用 == 比较 : true

Double 基本类型和包装对象使用 equals 比较 : true

Double 包装对象和包装对象使用 == 比较 : false

Double 包装对象和包装对象使用 equals 比较 : true

Boolean 基本类型和包装对象使用 == 比较 : true

Boolean 基本类型和包装对象使用 equals 比较 : true

Boolean 包装对象和包装对象使用 == 比较 : false

Boolean 包装对象和包装对象使用 equals 比较 : true



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-23 09:02 , Processed in 0.036703 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表