JAVA

String StringBuffer 차이

k9e4h 2017. 10. 12. 17:27

http://ooz.co.kr/298

http://leegaworld.tistory.com/8

String, StringBuffer 성능 비교 : http://javacan.tistory.com/entry/39

StringBuffer, StringBuilder 성능 비교 : http://egloos.zum.com/deblan2/v/419830



http://skynaver.tistory.com/entry/String%EA%B3%BC-StringBuffer%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90




String / 불변객체(immutable instance)



예제1


String hello = "Hello";

hello += " and how are you?";


String으로 문자열을 합치기 위해서는 위와 같은 코드. 이 코드는 내부적으로 아래와 같이 동작.


hello = new StringBuffer(hello).append(" anad how are you?".toStgring();


이 과정에서 " and how are you?"와 hello라는 문자열 객체 두개가 garbage가 됨 (레퍼런스가 사라지므로)





예제2


String name = "Albus ";

name = name + "Percival ";

name = name + "Wulfric ";

name += "Brian ";

name += "Dumbledore!";



위와 같은 코드는 내부적으로 아래와 같이 동작.


String name = "Albus ";

name = new StringBuffer(name).append("Percival ").toS  tring();

name = new StringBuffer(name).append("Wulfric ").toString();

name = new StringBuffer(name).append("Brian ").toString();

name = new StringBuffer(name).append("Dumbledore!").toString();


객체 생성이 계속 해서 일어나므로 좋지 않음

따라서 아래와 같이 작성하도록 한다.



StringBuffer myName = new StringBuffer("Albus");

myName.append("Percival ");

myName.append("Wulfric ");

myName.append("Brian ");

myName.append("Dumbledore!");

String myNameResult = myName.toString();

반응형

'JAVA' 카테고리의 다른 글

[JAVA] Static  (0) 2018.05.08
[JAVA] enum (last update : 2022.01.13 )  (0) 2018.05.04
[JAVA] List, ArrayList  (0) 2017.09.22
JsonRequester  (0) 2017.07.05
정규식(Regular Expression)  (0) 2017.04.18