String과 StringBuffer의 성능 & 속도에대해서...
나라빛
String과 StringBuffer 대부분은 StringBuffer의 성능과 속도가 좋다고 나왔는데
String string = abc + abc + abc;
여기서 String은 객체로 생성되기 때문에 메모리상에 3개의 각각의 객체를 생성된다고 생각합니다.
반대로
StringBuffer sb = new StringBuffer();
sb.append(abc);
sb.append(abc);
sb.append(abc);
이것은 sb라는 객체를 생성해서 한번만 객체를 생성하게됩니다
그렇기때문에메모리 측면에서도StringBuffer가 좋다생각합니다.
제가 생각하는게 맞는건가요??
한가지더 속도측면에서 String과 StringBuffer에대해 쉽게 설명좀 해주실수 있나요??ㅠㅠ
예를들면 어떤것 때문에 어떤게 더 속도가 빠르다. 이런식으로 해주시면 감사하겠습니다..
이때는 String을 사용하는게 좋다, 이럴때는 StringBuffer를 사용하는게 좋다.
가르쳐주세요...ㅠㅠ
-
에드워드
하지만 StringBuilder, StringBuffer는 변형이 필요한 문자열을 저장하기 위한 객체입니다. 주로 String은 변형이 되지 않을 문자열을 저장할 용도로 사용됩니다.
위 둘은 생성과 동시에 문자열을 저장할 예비공간을 갖습니다.(약 15문자 정도)
StringBuilder str1 =\aaa\ // 이렇게 저장되면 str1에는 aaa가 저장되고 플러스로 약 15개 문자가 저장될 공간이 더해서잡힙니다.
str1.append(\bbb\) -
수련
String레퍼런스 변수는 가지고 있는 문자열의 변형을 할수 없습니다. String str1 =\aaa\를 가졌다면 str1= str1+bbb; 은 str1문자열 뒤에 bbb를 쉽게 붙여버리는게 아니라 str1의 aaa와 bbb를 합쳐서 다시 String객체를 생성해서 str1에 대입하는 형태입니다. 쉽게 생각하면 str1= str1+\bbb\;를 하기 위해선 원래 있던 str1을 날리고 새로 문자열을 한번더 생성해서 str1에 대입한다 보시면 됩니다.