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 값으로 바뀌어서 출력된 것을 볼 수 있다.
'PL(ProgrammingLanguage) > 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 |