ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] StringBuffer
    Programming 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
Designed by Tistory.