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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wodeairenw 中级黑马   /  2013-3-11 14:28  /  769 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wodeairenw 于 2013-3-11 15:36 编辑

class zijiwenti1
{
        public static void main(String[] args)
        {
                String a = new String("100");
                String b = "100";
               
                sop("a==b:"+a==b);//这哪里错了 ,为什么非要括号sop("a==b:"+(a==b));?
                sop("a==b:"+a==c);
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

5 个回复

倒序浏览
String a = new String(100);这里就错了,里面应该是"100"字符串还可以
String b = 100;100是整型数据,怎么可以直接赋值给String类型的b呢
a==b比较的是两个变量的地址值是否相等,如果前面两句没错,他们没指向同一个对象,当然不等
a==c就疑惑了,没c这个变量。
回复 使用道具 举报
String a = new String(100);
                String b = 100;

这两句都编译不了吧
回复 使用道具 举报
     public static void main(String[] args)
        {
                String a = new String(100);  //做为字符串初始化值1000应该放入双引号“1000”
                String b = 100;   //做为字符串初始化值1000应该放入双引号“100”
               
                sop("a==b:"+a==b);//这个位置错是因为语句先执行的是(("a==b:"+a),然后再去和b比较,可以用("a==b:"+(a==b))
                sop("a==b:"+a==c);
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1 赞一个!

查看全部评分

回复 使用道具 举报
大哥你下次发的时候能不能把代码整好一点,别贴个编译都不通过的代码。
这当然是错的,这又不是一个对象怎么会对呢?
字符串比较用equals啊。
我给你整了一下,你自己运行看看吧。

public static void main(String[] args)
{
    String a = new String("100");
    String b = "100";
   
   sop("a==b:"+a==b);//这哪里错了 ,为什么?
   System.out.println(a.equals(b));
}
public static void sop(Object obj)
{
    System.out.println(obj);
}


回复 使用道具 举报
String a = new String("100");
String b = "100";
a==b 为false
== : 用于比较对象间两个对象的引用地址是否一致,即比校是不是一个对象
a有两个对象在内存中,b只有一个对象。所以当比较两个在内存中的地址值时不确定,所以为false。
用 equals方法比则为true
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马