JAVA
Difference between String and StringBuffer
스트링과 스트링 버퍼의 차이
스트링과 스트링 버퍼 사이에는 많은 차이가 있습니다.
그 차이점들은 아래와 같습니다.
1) 스트링 (String)
스트링 클래스는 변경 할 수 없습니다.
1-1) 스트링 버퍼 (StringBuffer)
스트링 버퍼는 변경 할 수 있습니다.
2) 스트링 (String)
당신이 많은 스트링 String [문자열]을 연결 할 때, 매시간 새로운 경우를 만들기 때문에 스트링은 느리며, 또 더 많은 메모리를 소비합니다.
2-1)스트링 버퍼 (StringBuffer)
당신이 스트링을 연결할 때, 스트링 버퍼는 스트링에 비해 빠르고, 더 적은 메모리를 소비합니다.
3) 스트링 (String)
스트링 클래스는 객체의 equals() 메소드를 치환합니다.
그러므로 당신은 equals() 메소드로 2개의 스트링의 내용을 비교할 수 있습니다.
3-1) 스트링 버퍼 (StringBuffer)
스트링 버퍼는 객체 클래스의 equals() 메소드를 치환하지 않습니다.
Performance Test of String and StringBuffer
스트링과 스트링 버퍼의 성능검사
public class ConcatTest{
public static String concatWithString() {
String t = "Java";
for (int i=0; i<10000; i++){
t = t + "Tpoint";
}
return t;
}
public static String concatWithStringBuffer(){
StringBuffer sb = new StringBuffer("Java");
for (int i=0; i<10000; i++){
sb.append("Tpoint");
}
return sb.toString();
}
public static void main(String[] args){
long startTime = System.currentTimeMillis();
concatWithString();
System.out.println("Time taken by Concating with String: "+(System.currentTimeMillis()-startTime)+"ms");
startTime = System.currentTimeMillis();
concatWithStringBuffer();
System.out.println("Time taken by Concating with StringBuffer: "+(System.currentTimeMillis()-startTime)+"ms");
}
}
String로 연결에 걸린 시간 : 578ms
StringBuffer로 연결에 걸린 시간 : 0ms
String and StringBuffer HashCode Test
아래 주어진 프로그램에서 볼 수 있듯이, 스트링을 연결할 때, 새로운 해쉬코드 값을 반환합니다. 뿐만 아니라 스트링 버퍼도 동일하게 반환합니다.
public class InstanceTest{
public static void main(String args[]){
System.out.println("Hashcode test of String:");
String str="java";
System.out.println(str.hashCode());
str=str+"tpoint";
System.out.println(str.hashCode());
System.out.println("Hashcode test of StringBuffer:");
StringBuffer sb=new StringBuffer("java");
System.out.println(sb.hashCode());
sb.append("tpoint");
System.out.println(sb.hashCode());
}
}
스트링의 해쉬코드 테스트:
3254818
229541438
스트링 버퍼의 해쉬코드 테스트:
118352462
118352462
영어원문내용출처 : http://www.javatpoint.com/
번역,의역 및 작성 : 초코토끼
검수 : 개발토끼
오역 및 오타의 지적은 겸손히 받겠습니다.
'IT Story > about Java' 카테고리의 다른 글
StringBuffer and StringBuilder 의 차이 (0) | 2015.10.14 |
---|---|
Java toString() method (0) | 2015.10.12 |
Java StringBuffer class (0) | 2015.10.06 |
Substring in Java [자바 부분 문자열] (0) | 2015.10.05 |
Java String compare [자바 문자열 비교] (6) | 2015.10.05 |