Java String 클래스, 문자열 비교, 빈 문자열
by 볼빵빵오춘기String 클래스
- String 클래스 = 데이터(char[ ])+ 메서드(문자열 관련)
- 내용을 변경할 수 없는 불변(immutable)클래스이다.
- 덧셈 연산자(+)를 이용한 문자열 결합은 성능지 떨어진다.(문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer를 사용하자!)
문자열의 비교
String str = “abc”;(문자열 리터럴) vs String str = new String(”abc”)의 비교
⇒ == 주소 비교하는 것이고 equals() 는 내용 비교하는 것이다.
위(문자열비교-이미지)를 보면 문자열 리터럴은 하나만 만들어지고 그 문자열을 공유한다.
🤔 why?
- 문자열 리터럴은 프로그램 실행시 자동으로 생성된다(constant pool[상수저장소]에 저장)
- 같은 내용의 문자열 리터럴은 하나만 만들어진다.(리터럴=상수 라 생각하면된다.)
빈 문자열(””, empty string)
- 내용이 없는 문자열. 크기가 0인 char형 배열을 저장하는 문자열이다.
더보기
String str = ""; // str을 빈 문자열로 초기화
- 크기가 0인 배열을 생성하는 것은 어느 타입이나 가능하다.
더보기
char[] chArr = new char[0]; // 길이가 0인 char배열
int[] iArr = {}; // 길이가 0인 int 배열
⇒ 배열은 데이터를 위한 용도인데 배열의 길이가 0인 것을 무슨 의미가 있을까싶지만 숫자를 문자로 바꿀때나 null보다는 낫기때문에 0인 길이를 만든다.
문자(char)와 문자열(String)의 초기화
String s = null; // 기본값
char c = '\u0000'; // 유니코드 첫 번째 문자, 기본값
String s = ""; // 빈 문자열로 초기화
char c = ' '; // 공백으로 초기화
⇒ 코드1 보다는 코드2 코드 형식으로 초기화를 한다.(null은 저장공간을 확보x)
'👩🏻💻 About 프로그래밍 > Java' 카테고리의 다른 글
Java StringJoiner, 문자열과 기본형 변환 (0) | 2023.12.01 |
---|---|
Java String 생성자 (1) | 2023.12.01 |
Java equals(), hashCode(), toString() (0) | 2023.12.01 |
Java Object클래스, Object클래스 메서드 (1) | 2023.12.01 |
Java 연결된 예외(chained exception) (0) | 2023.12.01 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기