기존의 다른 언어에서는 문자열을 char형의 배열로 다루었으나 자바에서는
문자열을 위한 클래스를 다루는데 그것이 String 클래스이다.
String클래스에는 문자열을 저장하기 위해서 문자형 배열 변수 (char[]) value를 인스턴스변수로 정의한다.
String 클래스는 앞에 final이 붙어 있기때문에 상속 불가하다.
String 클래스의 인스턴스 값들은 변경이 불가하다.
StringBuffer의 경우에는 변경이 가능하고 메소드는 String과 유사하지만
추가, 변경, 삭제와 같이 저장된 내용을 변경할 수 있는 메서드들이 추가로 제공된다.
StringBuffer의 경우 .equals를 오버라이딩 하지 않기 때문에 인스턴스 값을 비교할때
toString을 이용하여 String으로 값을 받아 String에 오버라이드 된 .equals를 이용하여 값을 비교한다.
StringBuffer는 멀티 쓰레드에 안전하도록 동기화 되어있다 . 하지만 멀티쓰레드를 이용하지 않는다면
성능을 떨어뜨리기 때문에 StringBuffer에서 쓰레드 동기화를 뺀 StringBuilder가 생성 되었다.
쓰레드를 사용하지 않는다면 builder를 사용하는 편이 성능면에서 좋다고 한다.
'프로그래밍 > java' 카테고리의 다른 글
LocalDate, LocalTime 시간 비교 (0) | 2023.10.17 |
---|---|
Exception source (0) | 2019.11.13 |
Iterator (1) | 2019.11.13 |
Hashtable 객체 출력에서 생기는 오류 (2) | 2019.11.13 |