贴代码先
public class HelloWorld{
public String strMyString;
public int intMyNumber;
public HelloWorld(String strMyString,int intMyNumber){
this.strMyString = strMyString;
this.intMyNumber = intMyNumber;
}
public static void main(String[] args){
String str1 = "hode";
String str2 = "hode";
String str3 = new String("hode");
String str4 = new String("hode");//true
HelloWorld hello1 = new HelloWorld("hode",1);
HelloWorld hello2 = new HelloWorld("hode",1);
System.out.println("str1==str2 :"+(str1==str2));
System.out.println("str1.equals(str2)= "+(str1.equals(str2)));//true
System.out.println("str3==str4 :"+(str3==str4));//false
System.out.println("str3.equals(str4)= "+(str3.equals(str4)));//true
System.out.println("hello1==hello2 :"+(hello1==hello2));//false
System.out.println("hello1.equals(hello2)= "+(hello1.equals(hello2)));//false
}
}
解释一下为什么
str1和str2都是一个对象,str2引用str1的地址,str3和str4就不是一个对象了,至于HelloWorld对象也是一种特殊的数据类型,所以可以等同String看待