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

+ Recent posts