Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

String 클래스, 문자열 비교, 빈 문자열 본문

Java/JAVA2

String 클래스, 문자열 비교, 빈 문자열

빌드이너프 2023. 6. 26. 12:35

String 클래스

문자열을 다루기 위한 클래스

String 클래스 = 데이터(char[]) + 메서드(문자열 관련)

 

내용을 변경할 수 없는 불변(immutable) 클래스

덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐

문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer를 사용

String a = "a";
String b = "b";
a = a + b;

 

 

 

문자열 비교

String str = "abc"String str = new String("abc");의 비교

String str1 = "abc"; // 문자열 리터럴 "abc"의 주소가 str1에 저장됨
String str2 = "abc"; // 문자열 리터럴 "abc"의 주소가 str2에 저장됨
String str3 = new String("abc"); // 새로운 String 인스턴스를 생성
String str4 = new String("abc"); // 새로운 String 인스턴스를 생성

 

 

 

문자열 리터럴

문자열 리터럴은 프로그램 실행 시 자동으로 생성된다(constant pool[상수 저장소]에 저장)

class StringTest {
    public static void main(String args[]) }
        String s1 = "AAA";
        String s2 = "AAA";
        String s3 = "AAA";
        String s4 = "BBB";
    }
}

같은 내용의 문자열 리터럴은 하나만 만들어진다

 

 

빈 문자열(empty string)

내용이 없는 문자열, 크기가 0인 char 형 배열을 저장하는 문자열

String str = ""; // str을 빈 문자열로 초기화

 

크기가 0인 배열을 생성하는 것은 어느 타입이나 가능

char[] chArr = new char[0]; // 길이가 0인 char 배열
int[] iArr = {}; // 길이가 0인 int 배열

 

문자(char)와 문자열(String)의 초기화

new 연산자를 사용하여 저장할 내용이 없어도 새로운 배열이 계속 만들어 지는 것보다, 하나의 빈 문자열을 str4, str5, str5가 공유하기 때문에 메모리를 조금이나마 절약할 수 있다