Java/JAVA의 정석
String 클래스
Jenny_yoon
2022. 11. 18. 22:44
728x90
반응형
1) String 클래스
- 데이터 (char[]/문자배열) + 메서드(문자열 다루는데 필요한)
- 내용을 변경할 수 없는 불변(immutable) 클래스
String a = "a";
String b = "b";
a = a + b; // "ab"문자열이 새로운 객체로 생성되는 것. (a객체가 바뀌는게 아님) - 덧셈연산사(+)를 이용한 문자열 결합은 성능이 떨어짐. (계속 새로운 객체가 만들어지니까)
- 문자열의 결합/변경이 잦은경우, 내용변경 가능한 StringBuffer라는 클래스 사용.
2) 문자열의 비교
- String str1 = "abc";
String str2 = "abc"; // "abc"라는 같은 객체를 str과 str2가 함께 공유
str1 == str2 ? true -> 주소비교
str1.equals(str2) ? true -> 내용비교
- String str3 = new String("abc");
String str4 = new String("abc"); // str3, str4 각자 다른 "abc" 객체 생성
str3 == str4 ? false
str3.equals(str4) ? true
즉, 문자열 비교할 땐, 항상 euqals()를 통해 비교해야함 !
3) 문자열의 리터럴(상수)
- 문자열 리터럴은 프로그램 실행시 자동으로 생성됨(constant pool에 저장)
- 같은 내용의 문자열 리터럴은 하나만 만들어짐.
4) 빈 문자열("", empty string)
728x90
반응형