A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2014-5-24 01:07  /  7538 人查看  /  57 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 编程学徙 于 2014-5-24 04:16 编辑

关于在字符串比较中equals方法和“==”运算符的不同之处。
首先,假定有字符串a和b.
a==b   这个boolean表达式,只要a和b 当中字符串内容相同,则值为true,否则,值为false;
a.equals(b)  这个boolean表达式,只有当a和b引用的是同一片内存时(同一片内存,字符串当然相同),其值才为true,否则,值都为false;

以下是代码验证:
  1. <blockquote>class Str01
复制代码
class Str01
{
        public static void main(String[] args)
        {
                String a = "hello";
                String b = "hello";
                String c = new String("hello");
                if(a==b)
                {
                        System.out.printf("a和b引用同一片内存\n");
                }
                else
                {
                        System.out.printf("a和b不引用同一片内存\n");
                }
                if(a.equals(b))
                {
                        System.out.printf("a和b字符串相同\n");
                }
                else
                {
                        System.out.printf("a和b字符串不同\n");
                }
                if(a==c)
                {
                        System.out.printf("a和c引用同一片内存\n");
                }
                else
                {
                        System.out.printf("a和c不引用同一片内存\n");
                }
                if(a.equals(c))
                {
                        System.out.printf("a和c字符串相同\n");
                }
                else
                {
                        System.out.printf("a和c字符串不同\n");
                }
        }
}



以下是运行结果:



12133.jpg (53.66 KB, 下载次数: 47)

12133.jpg

点评

楼主写的很精彩,就是上边写的文字当中有些小错误. a==b和a.equals(b)的论述写反了!  发表于 2015-4-23 20:45

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 很给力!

查看全部评分

回复 使用道具 举报 3 1
您需要登录后才可以回帖 登录 | 加入黑马