public calss StringTest {
public static void main(String[] args) {
String str = new String("aa");
String str2= new String("aa");
System.out.println(str.equals(str2));
String str3 = "aa";
String str4 = "aa";
System.out.println(str3.equals(str4));
Object object = new Object();
Object object2 = new Object();
System.out.println(object.equals(object2));
}
}
equals()方法,该方法定义在Object类当中,因此java中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equals()方法的引用与传进来的引用是否指向的是同一个对象。
对于equals()方法来说,它等价于==
对于String类的equals()方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。
对于String对象的相等性判断来说,请使用equals方法,而不要使用==
public class EqualsTest {
public static void main(String[] args) {
Student s1 = new Student("zhangsan");
Student s2 = new Student("zhangsan");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
class Student {
String name;
public Student(String name) {
this.name = name;
}
poublic boolean equals(Object anObject) {
if(this == anObject) {
return true;
}
if(anObject instanceof Student) {
Student student = (Student)anObject;
if(student.name.equals(this.name)) {
return true;
}
}
return false;
}
public static void main(String[] args) {
String str = new String("aa");
String str2= new String("aa");
System.out.println(str.equals(str2));
String str3 = "aa";
String str4 = "aa";
System.out.println(str3.equals(str4));
Object object = new Object();
Object object2 = new Object();
System.out.println(object.equals(object2));
}
}
equals()方法,该方法定义在Object类当中,因此java中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equals()方法的引用与传进来的引用是否指向的是同一个对象。
对于equals()方法来说,它等价于==
对于String类的equals()方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。
对于String对象的相等性判断来说,请使用equals方法,而不要使用==
public class EqualsTest {
public static void main(String[] args) {
Student s1 = new Student("zhangsan");
Student s2 = new Student("zhangsan");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
class Student {
String name;
public Student(String name) {
this.name = name;
}
poublic boolean equals(Object anObject) {
if(this == anObject) {
return true;
}
if(anObject instanceof Student) {
Student student = (Student)anObject;
if(student.name.equals(this.name)) {
return true;
}
}
return false;
}
}
字符串是常量,其对象一但被创建,就无法改变,当使用+拼接字符串时,会生成新的String对象,而不是向原有的字符串 对象追加内容。
public class StringTest {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
String s3= s1 +s2;
System.out.println(s3);
}
}
String Pool(字符串池)