String 객체를 선언하는 방법
String 을 선언하는 방법에는 두 가지 방법이 있습니다.
두 방식은 저장 공간(메모리)에 차이가 있습니다.
리터럴로 선언
리터럴로 선언하는 경우 문자열을 String Constant pool에 저장한다.
따라서 메모리의 효율이 좋다.
리터럴을 사용하여 생성할 때 상수 풀에 같은 값이 존재하면 객체는 이미 존재하는 값을 참조한다.
따라 동일한 문자열을 리터럴로 선언한 변수는 모두 같은 객체를 참조한다.
new 키워드 사용
new 키워드를 이용하여 선언하는 경우 객체가 힙 메모리에 저장된다.
항상 새로운 객체가 생성되기 때문에 항상 새로운 인스턴스가 필요한 경우 사용한다.
또한 동일한 문자열의 내용이라도 다른 객체를 참조한다.
1
2
3
4
5
String a = new String("hello");
String b = new String("hello");
System.out.println(a == b); // false (두 변수는 다른 객체를 참조)
System.out.println(a.equals(b)); // true (두 변수의 문자열 내용은 같음)
This post is licensed under
CC BY 4.0
by the author.