黑马程序员技术交流社区
标题:
打印语句错误求解决。。
[打印本页]
作者:
wodeairenw
时间:
2013-3-11 14:28
标题:
打印语句错误求解决。。
本帖最后由 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);
}
}
作者:
杨剑
时间:
2013-3-11 14:39
String a = new String(100);这里就错了,里面应该是"100"字符串还可以
String b = 100;100是整型数据,怎么可以直接赋值给String类型的b呢
a==b比较的是两个变量的地址值是否相等,如果前面两句没错,他们没指向同一个对象,当然不等
a==c就疑惑了,没c这个变量。
作者:
丁一
时间:
2013-3-11 14:39
String a = new String(100);
String b = 100;
这两句都编译不了吧
作者:
邹学良
时间:
2013-3-11 14:53
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);
}
作者:
王智威
时间:
2013-3-11 14:57
大哥你下次发的时候能不能把代码整好一点,别贴个编译都不通过的代码。
这当然是错的,这又不是一个对象怎么会对呢?
字符串比较用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);
}
作者:
王龙涛
时间:
2013-3-11 15:34
String a = new String("100");
String b = "100";
a==b 为false
== : 用于比较对象间两个对象的引用地址是否一致,即比校是不是一个对象
a有两个对象在内存中,b只有一个对象。所以当比较两个在内存中的地址值时不确定,所以为false。
用 equals方法比则为true
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2