String, StringBuffer, StringBuilder
String, StringBuffer, StringBuilder 차이를 알아보자
Last updated
/**
* Strings are objects which represent immutable arrays of characters.
*
* @author OTI
* @version initial
*
* @see StringBuffer
*/
public final class String implements Serializable, Comparable<String>, CharSequence
{
...
private final char[] value;
private final int count;
private int hashCode;
...
/**
* Creates a string that is a copy of another string
*
* @param string
* the String to copy
*/
public String(String string) {
value = string.value;
count = string.count;
hashCode = string.hashCode;
}
}/*
* Creates a string that is s1 + s2.
*/
private String(String s1, String s2) {
...
value = new char[concatlen];
count = concatlen;
System.arraycopy(s1.value, 0, value, 0, s1len);
System.arraycopy(s2.value, 0, value, s1len, s2len);
}public static void main(String[] args) {
// case 1. 두 인스턴스 문자열 조합
String str1 = "test";
String str2 = "test";
String str3 = str1 + str2;
// case 2. 문자열 인스턴스에 int 추가
String str4 = "";
str4 += 0;
str4 += 1;
str4 += 2;
// case 3. 문자열 인스턴스에 for loop를 돌면서 문자열 추가
String str5 = "123";
for(int i = 0; i < 100; ++i) {
str5 = str5 + "456";
}
}public static void main(String args[])
{
// case 1. 두 인스턴스 문자열 조합
String str1 = "test";
String str2 = "test";
String str3 = (new StringBuilder()).append(str1).append(str2).toString();
// case 2. 문자열 인스턴스에 int 추가
String str4 = "";
str4 = (new StringBuilder()).append(str4).append(0).toString();
str4 = (new StringBuilder()).append(str4).append(1).toString();
str4 = (new StringBuilder()).append(str4).append(2).toString();
// case 3. 문자열 인스턴스에 for loop를 돌면서 문자열 추가
String str5 = "123";
for(int i = 0; i < 100; i++)
str5 = (new StringBuilder()).append(str5).append("456").toString();
}public final class StringBuilder extends AbstractStringBuilder implements Serializable, CharSequence, Appendable {
...
private transient char[] value;
...
}/**
* Adds the character array to the end of this StringBuffer.
*
* @param chars the character array
* @return this StringBuffer
*
* @exception NullPointerException when chars is null
*/
public synchronized StringBuffer append (char[] chars) {
int currentLength = lengthInternalUnsynchronized();
int currentCapacity = capacityInternal();
...
}