본문 바로가기

JAVA/복습

StringBuffer

String 클래스와 비슷한 클래스, StringBuffer 클래스

 

String 클래스는 자기 자신이 변하지 않는 불변 클래스

 

반면 StringBuffer 클래스는 자기 자신이 변하는 클래스이다.

 


-- StringBuffer 생성

package java03.day03;

public class StringBufferExam {

    public static void main(String[] args) {
        //StringBuffer 생성
        StringBuffer sb = new StringBuffer();

        // StringBuffer에다 문자열을 하나씩 추가하기 = > append()
        sb.append("hello");
        sb.append(" ");
        sb.append("world");

        // 이렇게 추가된 StringBuffer객체는 toString() 가지고 있다.
        // 이 StringBuffer가 가진 toString()보면 리턴타입이 String이라는 것을 알 수 있다.

        String str = sb.toString();
        System.out.println(str);

    }
}

 

-- 출력결과

 

 

 

 StringBuffer가 가지고 있는 메소드들은 대부분 자기자신을 반환한다.

 

	StringBuffer sb1 = new StringBuffer();
        StringBuffer sb2 = sb1.append("hello");
        if (sb1 == sb2)
            System.out.println("sb1 == sb2");

-- 출력결과

 

StringBuffer가 가지고 있는 메소드들은 대부분 자기 자신, this를 반환하는 것을 알 수 있다.

 

* Method Chaining : 자기자신을 리턴하여 계속해서 자신의 메소드를 호출하는 방식

=> 이렇게 자기자신을 리턴하는 것을 이용해서 계속해서 자기 자신의 메소드를 호출하면서

         자기자신의 값을 바꿔나가는 방식을 메소드 체이닝(Method Chaining) 방식이라 한다.

 

 

-- 테스트 해보기

 

String str2 = new StringBuffer() 를 생성했을때 끝나는게 아니라
뒤에다가  '.' 하면 StringBuffer가 가진 메소드를 사용할 수 있다. (계속해서 사용가능)

String str2 = new StringBuffer().append("hello").append(" ").append("world").toString();
System.out.println(str2);

-- 출력결과

Str2에 각각 붙여준 문자열이 잘 String 값으로 바뀌어서 출력된 것을 볼 수 있다. 

 

 

 

 

'JAVA > 복습' 카테고리의 다른 글

java.util 패키지  (0) 2021.10.21
Math클래스  (0) 2021.10.21
Generic  (0) 2021.10.20
java.lang 패키지/ 오토박싱  (0) 2021.10.20
Object와 overriding  (0) 2021.10.17