자료형
포스트
취소

자료형

특징

  • 객체의 주소를 저장하는 타입의 자료형
  • 실제 객체는 메모리 힙 영역에 저장되고 메모리 스택 영역에서는 해당 객체의 주소를 저장한다.
  • 원시 타입 자료형과는 다르게 null로 초기화가 가능하다.
  • 기본 타입은 제네릭 타입에서 사용할 수 없지만, 참조 타입은 가능하다.
  • 참조 타입 변수 간에 데이터를 복사할 경우 데이터의 참조(주소)가 복사된다.
  • 종류 : 배열 타입, 열거 타입, 클래스, 인터페이스

String

  • 문자열 연산이 적고 멀티쓰레드 환경일 경우에 사용하는 자료형
  • 문자열이 담겨 있는 String 변수에 문자열 추가 연산을 하게 되면
    같은 객체가 아닌 메모리 힙 영역에 새로운 객체를 만든다.
  • 기존에 있던 객체는 가비지 컬렉션의 메모리 해제를 기다린다.
  • 문자열을 합쳐주는 + 연산자를 많이 사용할수록
    String 객체의 수가 늘어나기 때문에 프로그램 성능이 느려진다.
  • StringBuffer나 StringBuilder는 buffer의 크기를 초기에 설정해서
    String객체보다 생성 속도가 많이 느리기 때문에 연산이 많지 않은 경우에 사용하는 것이 좋다.
    = 단순 조회의 경우에 사용하는 것이 좋다.
  • 문자열 리터럴이 동일하면 String 객체를 공유
    = 선언한 변수가 달라도 내용물이 같으면 객체로 취급

String 메소드

  • 문자 가져오기
    • charAt(n)
      • 해당 객체가 가지고 있는 문자열의 n번째 인덱스의 문자를 가져온다.
    • substring(n)
      • 해당 객체가 가지고 있는 문자열의 n번째부터 끝까지의 문자를 가져온다.
    • substring(m, n)
      • 해당 객체가 가지고 있는 문자열의 n번째부터 n번째까지의 문자를 가져온다.
  • 문자열 비교
    • A.compareTo(B)라고 가정했을 때 같으면 0, A가 작으면 음수, A가 크면 양수 반환
    • 종류
      • compareTo()
        • 대소문자 구분 O
      • compareToIgnoreCase()
        • 대소문자 구분 X
  • 문자열 추가
    • concat()
      • 부르는 코드 부분에서만 문자열이 추가되고 그 이후에는 원래의 문자열로 돌아간다.
  • 문자열 찾기
    • indexOf()
      • 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환, 없으면 -1
  • 공백 제거
    • trim()
      • 해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거
  • 대소문자 변환
    • toLowerCase()
      • 모든 문자를 소문자로 변환
    • toUpperCase()
      • 모든 문자를 대문자로 변환
  • 문자열을 구분자로 잘라서 배열 만들기
    • split(“문자열”)
      • 문자열을 split 메소드에 설정한 값에 따라서 모두 나눠준 후에 배열로 리턴한다.
  • 빈 값 체크
    • isEmpty()
      • 해당 객체가 비어있으면 true, 아니면 false를 반환
  • 문자열의 길이 가져오기
    • length()
      • 해당 객체가 가지고 있는 문자열의 길이를 반환

StringBuffer

  • 문자열 연산이 많고 멀티 쓰레드 환경일 경우에 사용하는 자료형
  • String과 다르게 문자열 연산을 해도 같은 객체를 가리킨다.
  • 동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전하다.
  • 기본 버퍼 크기 : 16 //인스턴스 생성시 해당 인스턴스의 길이만큼 추가
  • 생성 및 초기화 예시 : StringBuffer sb = new StringBuffer();

StringBuilder

  • 문자열 연산이 많고 단일 쓰레드이거나 동기화를 고려하지 않아도 되는 경우에 사용하는 자료형
  • String과 다르게 문자열 연산을 해도 같은 객체를 가리킨다.
  • StringBuilder는 동기화를 지원하지는 않지만 그 만큼 단일 쓰레드에서의 성능이 좋다.
  • 기본 버퍼 크기 : 16 //인스턴스 생성시 해당 인스턴스의 길이만큼 추가
  • 생성 및 초기화 예시 : StringBuilder sb = new StringBuilder();

StringBuffer와 StringBuilder의 공통 메소드

  • 문자열 추가
    • append(“문자열”)
      • 해당 객체가 가지고 있는 문자열의 맨 뒤에 문자열 추가
    • insert(n, “문자열 “)
      • 해당 객체가 가지고 있는 문자열의 n번째 위치에 문자열 추가
  • 문자열 가져오기
    • substring(m, n)
      • 해당 객체가 가지고 있는 문자열의 m에서 n까지의 문자열을 가져온다.
  • 버퍼 크기 가져오기
    • capacity()
      • 해당 객체의 버퍼 크기를 가져온다.
  • 문자열 삭제
    • delete(m, n)
      • 해당 객체가 가지고 있는 문자열의 m에서 n까지의 문자열을 삭제한다.
    • deleteCharAt(n)
      • 해당 객체가 가지고 있는 문자열의 n번째 인덱스의 문자를 삭제한다.
  • 인덱스 재배열하기
    • reverse()
      • 해당 문자열의 인덱스를 역순으로 재배열
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.