我不是问的传统问题 我是要问输出结果 第一个为什么不显示str1==str 而只有一个FALSE?你们试一试看看那 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 "str1==str "+str1 这个字符串 != str2鉴定完毕 注意+的优先级比==高。System.out.println("str1==str "+str1==str2); 修改为System.out.println("str1==str "+(str1==str2)); 。无语了为什么只有一个FALSE?为什么?前面的不显示 字符串不相等不显示FALSE还显示什么呢 System.out.println("str1==str "+str1==str2); 字符串是不能这样比的 。这样比的是str1 和 str2的 内存地址。。这两个字符串的内存地址是不是一样的所以出 flase.不然你认为 为什么会有 equals这个方法? public class Test { public static void main(String[] args) { String str1=new String("abc"); String str2=new String("abc"); System.out.println("str1==str "+(str1==str2)); System.out.println("str1.equals(str2) "+str1.equals(str2)); } }这样写正解!~~ 因为 当你执行到"str1==str "+str1 时 当前的字符串就是"str1==str abc" 当然就不等于str2了 所以就是 false了 lz照上执行就可以了 ==用在字符串中是比较对应的字符串对象的地址,而不是值。这样可以显示两者相等:System.out.println("str1==str2"+str1+"=="+str2); java 连接 oracle 查不出数据啊 刚刚学java有点疑问请各位帮帮忙 Frame repaint()怎么不能擦出原来的paint(); 求 HttpURLConnection 使用说明 文本文件导入数据库问题? 请教:左、中、右三部分分隔(宽度不同)的布局如何实现? Java 语法 帮帮忙看看程序错在那里! 我的代码点了运行怎么没反应?关于计算字符的。 什么情况编译不通过?什么情况下运行不通过? 登陆界面的跳转
鉴定完毕
System.out.println("str1==str "+str1==str2);
修改为
System.out.println("str1==str "+(str1==str2));
为什么只有一个FALSE?为什么?
前面的不显示 字符串不相等
不显示FALSE还显示什么呢
这两个字符串的内存地址是不是一样的所以出 flase.不然你认为 为什么会有 equals这个方法?
public class Test
{
public static void main(String[] args)
{
String str1=new String("abc");
String str2=new String("abc");
System.out.println("str1==str "+(str1==str2));
System.out.println("str1.equals(str2) "+str1.equals(str2));
}
}这样写正解!~~
因为 当你执行到"str1==str "+str1
时 当前的字符串就是"str1==str abc"
当然就不等于str2了
所以就是 false了
lz照上执行就可以了
这样可以显示两者相等:System.out.println("str1==str2"+str1+"=="+str2);