-
[Java] StringBufferProgramming Language/Java & Kotlin 2018. 12. 1. 22:17반응형
[Java] StringBuffer
- StringBuffer 자료형은 문자열을 추가하거나, 변경할 때 주로 사용하는 자료형이다.
- StringBuffer는 아래와 같이 사용한다.
| StringBuffer 를 사용하였을 때(StringBufferTest.java)
| append
- StringBuffer 자료형은 append 라는 메소드를 이용하여 계속해서 문자열을 추가해나갈 수 있다.
- toString() 메소드를 이용하면 String 자료형으로 변경할 수 있다.
| String 을 사용하였을 때(StringTest.java)
- 두 개의 코드(code) 모두 출력은 동일하지만, 내부적으로 객체가 생성되고 메모리가 사용되는 과정은 다르다.
- StringBuffer의 경우 객체는 단 한번만 생성된다.
- String의 경우 String 자료형에 + 연산이 있을 때마다 새로운 String 객체가 생성된다. (문자열 간 + 연산이 있는 경우 java는 자동으로 새로운 String 객체를 생성한다. 그러므로 위에서는 총 4개의 String 자료형 객체가 만들어진다)
※immutable VS mutable
String 자료형은 한번 값이 생성되면, 그 값을 변경할 수 없다. 이렇게 값을 변경할 수 없는 것을 immutable 하다고 한다. trim, toUpperCase 등의 메소드를 보면 문자열이 변경되는 것처럼 생각될 수도 있겠지만, 해당 메소드 수행 시 또 다른 String 객체를 생성하여 리턴할 뿐이다.
반면 StringBuffer는 값을 변경할 수 있다.(mutable) 즉 한번 생성된 값을 언제든지 수정할 수 있다.
※StringBuffer VS String
- StringBuffer 자료형은 String 자료형보다 무겁다. new StringBuffer()로 객체를 생성하는 것은 일반 String을 사용하는 것보다 메모리 사용량도 많고 속도도 느리다. 즉 문자열 추가나 변경 등의 작업이 많을 경우에는 StringBuffer를, 문자열 변경 작업이 거의 없는 경우에는 String 을 사용하는 것이 유리하다. 상황에 따라 적절하게 사용하도록 하자.
| insert
- insert 메소드는 특정 위치에 원하는 문자열을 삽입할 수 있다.
- 아래 코드는 0번째 위치에 "Hello "라는 문자열을 삽입한다.
| substring
- substring 메소드는 String 자료형의 substring 메소드와 사용법이 동일하다.
- substring(시작위치, 끝위치)와 같이 사용하면 StringBuffer 객체의 시작 위치에서 끝위치까지 문자를 뽑아낸다.
반응형'Programming Language > Java & Kotlin' 카테고리의 다른 글
[Java] 람다식 (0) 2019.06.13 [Java] Enum 클래스 (0) 2019.04.18 [Java] 스트림 API (0) 2019.04.16 [Java] 람다 표현식 (0) 2019.04.15 [Java] Java 배열 정렬 (0) 2018.11.27