Java - String 클래스

춤추는개발자·2022년 11월 28일
0

Java 정리

목록 보기
31/59

String 클래스

  • 자바에서는 문자열을 위한 클래스를 제공
  • String 클래스는 문자열을 저장하고 이를 다루는데 필요한 메서드를 함께 제공

변경 불가능한(immutable) 클래스

  • String 클래스에는 문자열을 저장하기 위해서 문자형 배열(char[]) 참조변수 value를 인스턴스 변수로 정의해놓고 있다.
  • 인스턴스 생성 시(new String(매개변수)) 생성자의 매개변수로 입력받는 문자열은 이 인스턴스변수 value에 문자형 배열로 저장되는 방식 입니다.
  • 한번 생성된 String 인스턴스가 갖고 있는 문자열은 읽어 올수만 있고 변경할 수 없습니다. +를 사용해서 문자열을 결합할때 인스턴스에 저장되어 있는 문자열이 변경 되는것이 아니라 새로운 String 인스턴스가 생성 되는 것 입니다.
  • 문자열 결합을 자주하게 되면 성능이 떨어지기 때문에 자주 문자열 결합을 해야될 때는 StringBuffer를 이용하기

문자열의 비교

  • 문자열을 가진 인스턴스는 하나만 만들어져서 공유한다. 여러개의 변수로 문자열을 저장하면 모든 변수들은 하나의 인스턴스를 가리킨다.
  • new 연산자를 이용해서 문자열을 만들면 문자열 내용이 같아도 항상 새로운 인스턴스를 만들어 문자열이 만들어진다. new를 이용해 문자열을 저장할 일은 별로 없다. 사용 안하는것이 좋음
  • 문자열의 내용을 비교할때는 equlas() 사용 "=="은 인스턴스의 주소를 비교하기 때문이다.

문자열 리터럴

  • 문자열 리터럴은 프로그램이 실행되면 자동으로 만들어져 constant pool(상수 저장소)에 저장된다.
  • 같은 내용의 문자열 리터럴은 하나만 만들어진다.

빈 문자열(empty string)

  • 내용이 없는 문자열을 말한다. 길이가 0인 char형 배열을 저장하는 문자열이다.
  • 길이가 0인 배열을 생성하는 것은 어느 타입이가 가능하다. char,int,short,long 등등...
  • 문자와 문자열의 초기화
    • String str = ""; // 빈 문자열 초기화
    • char c = ' '; // 공백 초기화 char c = '';는 표현 불가

0개의 댓글