[求助]一个关于相等的问题
String str1=abc;
String str2=abc;
if(str1==str2)
System.out.println("相等");
else
System.out.println("不相等");
为啥有的时候相等有的时候不想等
----------------------------
integer a=100;
integer b=100;
integer c=200;
integer d=200;
----------
if(a==b)
System.out.println("相等");
else
System.out.println("不相等");
答案是相等
----------
if(a==b)
System.out.println("相等");
else
System.out.println("不相等");
答案又变成不相等了
--------------------------------
实在很迷茫,很困惑高手帮我解释一下.
搜索更多相关的解决方案:
相等
----------------解决方案--------------------------------------------------------
class a{
public static void main(String []args){
String str1= new String("abc");
String str2=new String("abc");
if(str1.equals(str2))
System.out.println("相等");
else
System.out.println("不相等");
}
}
java中类的概念值得好好理解啊,还有java在内存中保存的方式,分为堆空间和栈空间,看一下相关资料你就知道问题了.
----------------解决方案--------------------------------------------------------
现在做一个String 对象直接 String str=XXx就可以了不用new ,"=="是校验两个对象是不是占用同一个内存空间,我的意思是在值相同的时候有的是占用同一个空间有的时候又不是。
----------------解决方案--------------------------------------------------------
string判断相等用equals方法integer是对象类型 如果该为int结果就上一直相等,200的 integer益出了 你换成20试试 应该是总是相等的
----------------解决方案--------------------------------------------------------
可以简单的地理解为:
“==”是用来判断两个对像是否占用同一个内存空间;
equals用来比较两个对象中的内容是否相同。
----------------解决方案--------------------------------------------------------
equals()也是用来判断是否指向同一个对象的,只是String类把它覆盖了,用来判断String的内容是否相同,可以试试用其他类建立对象再比较就知道区别了
----------------解决方案--------------------------------------------------------
楼上说得对,是我记错了
----------------解决方案--------------------------------------------------------