人生哲思录周国平豆瓣:JAVA中的一个小问题

来源:百度文库 编辑:高校问答 时间:2024/04/29 10:52:57
String s1="q";String s2="q";
判断(s1==s2)时因为s1,s2都为隐式对象,返回值应该为true; 但有时候却为false,为什么?什么情况下会这样?
跪求师哥师姐相助

对于对象的比较必须用对象自带的equals()函数,由于string是一个对象,所以要这样写:s1.equals(s2)而不是s1==s2。要记住,只有基本类型可以手==,具体是这几个(int ,long,char,boolean,double,float等)

s1保存的是一个q的地址,s2保存的是另一个q的地址(字符串保存的是地址!!)如果要比较字符串,请用equals和equalsIgnoreCase函数
用法:if (s1.equals(s2)){}else{}

初学者常犯的错了!!哈哈!