Java StringBuffer 초기화 방법
1. 초기화 방법
1) delete()
- ClearStringBuffer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class ClearStringBuffer {
public static void main(String[] args) {
// create a string buffer
StringBuffer str = new StringBuffer();
// add string to string buffer
str.append("Java");
str.append(" is");
str.append(" popular.");
System.out.println("StringBuffer: " + str);
// clear the string
// using delete()
str.delete(0, str.length());
System.out.println("Updated StringBuffer: " + str);
}
}
- 결과
1
2
StringBuffer: Java is popular.
Updated StringBuffer:
위의 예에서는 StringBuffer 클래스의 delete() 메서드를 사용하여 문자열 버퍼를 지웠다. 여기서 delete() 메서드는 지정된 인덱스 번호 내의 모든 문자를 제거한다.
참고: delete() 메서드는 이전 데이터를 메모리에 저장하지 않고 삭제하므로 garbage collected 되지 않는다. 가비지 컬렉션(Garbage Collection)을 호출하지 않기 때문에 속도가 중요한 경우 효율적이다.
2) setLength()
- ClearStringBuffer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class ClearStringBuffer {
public static void main(String[] args) {
// create a string buffer
StringBuffer str = new StringBuffer();
// add string to string buffer
str.append("Java");
str.append(" is");
str.append(" awesome.");
System.out.println("StringBuffer: " + str);
// clear the string
// using setLength()
str.setLength(0);
System.out.println("Updated StringBuffer: " + str);
}
}
- 결과
1
2
StringBuffer: Java is awesome.
Updated StringBuffer
여기서 setLength() 메서드는 StringBuffer에 있는 문자 시퀀스를 새 문자 시퀀스로 변경한다. 그리고 새 문자 시퀀스의 길이를 0으로 설정한다.
따라서 이전 문자 시퀀스는 garbage collected 된다.
참고: setLength() 메서드는 문자열 버퍼에 있는 문자 시퀀스를 완전히 무시한다. 그러나 delete() 메서드는 문자 시퀀스에 액세스하여 삭제한다. 따라서 setLength()가 delete()보다 빠르다.
3) Creating a new object
- ClearStringBuffer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class ClearStringBuffer {
public static void main(String[] args) {
// create a string buffer
StringBuffer str = new StringBuffer();
// add string to string buffer
str.append("Java");
str.append(" is");
str.append(" awesome.");
System.out.println("StringBuffer: " + str);
// clear the string
// using new
// here new object is created and assigned to str
str = new StringBuffer();
System.out.println("Updated StringBuffer: " + str);
}
}
- 결과
1
2
StringBuffer: Java is awesome.
Updated StringBuffer:
여기에서 new StringBuffer()는 새 문자열 버퍼 개체를 만들고 이전 변수를 새 개체에 할당한다. 이 경우 이전 개체가 있다. 그러나 액세스할 수 없음으로 garbage collected 된다.
따라서 매번 이전 문자열 버퍼를 지우는 대신 새 문자열 버퍼가 생성된다. 따라서 성능 면에서 효율성이 떨어진다.
[출처 및 참고]
This post is licensed under CC BY 4.0 by the author.