예제1) 비교연산자 == 의 사용 (같은 주소야?)
class Main {
public static void main(String[] args) {
String str1 = "hello world"; // 주소.
String str2 = "hello world"; // 주소가 같다.
String str3 = new String("hello world"); // new 생성자로 인해 생성된 새 주소.
String str4 = new String("hello world"); // new 생성자로 인해 생성된 또 다른 새 주소.
// example 1 --------------------- true가 출력된다.
if (str1 == str2) {
System.out.println("ture");
} else {
System.out.println("false");
}
// example 2 --------------------- false 가 출력된다.
if (str1 == str3) {
System.out.println("ture");
} else {
System.out.println("false");
}
// example 3 --------------------- false 가 출력된다.
if (str3 == str4) {
System.out.println("ture");
} else {
System.out.println("false");
}
}
}
예제2) equals() 사용 (같은 내용이야?)
class Main {
public static void main(String[] args) {
String str1 = "hello world"; // 주소
String str2 = "hello world"; // 주소가 같다
String str3 = new String("hello world"); // new 생성자로 인해 생성된 새 주소
String str4 = new String("hello world"); // new 생성자로 인해 생성된 또 다른 새 주소
// example 1 --------------------- true가 출력된다. 같은주소에 같은 내용 "hello world".
if (str1.equals(str2)) {
System.out.println("ture");
} else {
System.out.println("false");
}
/* example 2
------------- true가 출력된다. 서로다른 두 주소안의 내용이 "hello world"로 같다.*/
if (str1.equals(str3)) {
System.out.println("ture");
} else {
System.out.println("false");
}
/* example 3
------------- true가 출력된다. 서로다른 두 주소안의 내용이 "hello world"로 같다.*/
if (str3.equals(str3)) {
System.out.println("ture");
} else {
System.out.println("false");
}
}
}
}