String객체에서
같은 문자열을 만들 때
java는 먼저 만들어져 있는 객체를 참조해서
같은 주소를 가리키기 때문에 비교 연산자를 했을 때 True가 나온다
하지만 new String()으로 새로운 객체를 만들었을 때는
다른 객체 즉 다른 주소를 가리키기 때문에 False가 나온다
이때 다른 객체이지만 문자열의 값만 비교하려면
equals()를 쓴다
import java.util.Scanner;
public class Note{
public static void main(String[] args){
String str1="홍길동";
String str2="홍길동";
String str3=new String("홍길동");
if(str1==str2){
System.out.println("str1과 2는 참조 번지가 같음");
}
else{
System.out.println("str1과 2는 참조 번지가 다름");
}
if(str2!=str3){
System.out.println("str2와 3은 참조 객체가다름");
}
else{
System.out.println("str2와 3은 참조 번지가 같음");
}
if(str2.equals(str3)){
System.out.println("str2와 3의 문자열은 같음");
}
else{
System.out.println("str2와 3의 문자열은 같음");
}
}
}