Hello

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)

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기