String
xxxxxxxxxx
String a = "kor"; //literal을 사용해서 선언 - 힙영역 안의 string pool이라는 영역에 자리 잡는다.
String b = new String():
b = "kor";
String c = new String("kor"); //heap 영역에 저장
System.out.println(a == b); //true - literal끼리의 비교
System.out.println(a == c); //false - literal과 객체의 비교
System.out.println(b == c); //false - literal과 객체의 비교
String str1 = "String";
String str2 = "String";
System.out.println(str1 == str2); //true 자바의 컴파일러가 최적화를 위해 동일한 String 문자열이 존재하면 재사용 즉 String pool에 동일한 문자가 있다면
b = "String";
System.out.println(b == "String"); //true
//String을 객체화 할 필요 없다. 또한, 자주 수행될 경우에는 성능에 문제가 생길 수 있음.
'공부 > 개발' 카테고리의 다른 글
GO 프로그래밍 - 기초 1편 환경 설정 (0) | 2020.11.11 |
---|---|
swap (0) | 2018.01.10 |
상속 (0) | 2017.12.27 |
List, Map, Set의 차이점 (0) | 2017.08.21 |
인터페이스 강제 타입 변환(casting) (4) | 2017.06.13 |