- 자바는 문자열 리터럴이 동일하면 String 객체를 공유하도록 설계되어 있음
public class EqualsEx {
public static void main(String[] args) {
// 동일한 String 객체의 번지가 저장됨
String name1 = "sky";
String name2 = "sky";
if(name1 == name2) {
System.out.println("name1과 name2는 참조가 같음");
} else {
System.out.println("name1과 name2는 참조가 다름");
}
if(name1.equals(name2)) {
System.out.println("name1과 name2는 문자열이 같음");
}
// new 연산자로 String 객체를 생성하면 서로 다른 객체의 번지를 가짐
String name3 = new String("sky");
String name4 = new String("sky");
if(name3 == name4) {
System.out.println("name3과 name4는 참조가 같음");
} else {
System.out.println("name3과 name4는 참조가 다름");
}
if(name3.equals(name4)) {
System.out.println("name3과 name4는 문자열이 같음");
}
}
}
-
name1과 name2는 참조가 같음
name1과 name2는 문자열이 같음
name3과 name4는 참조가 다름
name3과 name4는 문자열이 같음
'Java' 카테고리의 다른 글
[Java] LinkedBlockingQueue 클래스 (0) | 2023.12.12 |
---|---|
[Java] 맥북 m2 JDK 설치 (1) | 2023.11.19 |
Java 네트워킹(networking) (0) | 2023.01.26 |
Java 입출력(I/O) (0) | 2023.01.26 |
Java Optional<T> (0) | 2023.01.20 |