IT이야기/JAVA

[DURGA코딩인터뷰대비] String과 StringBuffer 차이

FelixShin 2016. 3. 20. 09:18
반응형

1. 주제

String과 StringBuffer의 차이



2. 예시

1) String

(1)

String lb = new String("Durga")

lb.concat("software"); ---- concat() -> 문자를 결합해줌

sout(lb)


=> 답 : Dulga


(2)

String a = "kaka";

a = "bebe";


두번째 a에 bebe가 들어갈 때 kaka는 바로지워지는게 아니라 추후 가비지 컬렉터가 회수하게 됨, 

String은 기본적으로 Immutable(불변)의 속성을 가지고 있음


(3)

String a = "kaka";

a = a+ "bebe";


기존 변수 a가 kaka에서 kakabebe로 바뀌는게 아니라 kaka이외에 kakabebe가 만들어지고

추후 가비지컬렉터에 의해 kaka가 제거됨. 메모리를 StringBuffer보다 더 사용


StringBuffer

(1)

StringBuffer lb = new StringBuffer("Durga");

lb.oppend("software");

sopn(lb);


=> 답 : Dulgasoftware


(2)

StringBuffer a = "kaka";

a.append("bebe");

기존의 a변수가 kaka에서 kakabebe로 변함



3. 요약

1) String객체가 생성될 때 기존에 있던 객체에서 어떠한 변화도 수행되지 않는다. 만약 우리가 어떠한 변화를 일으키려고 수행한다면 새로운 객체가 생성될 것이다. Immutability(불변)이 String 객체의 특성이다.

2) StringBugger객체는 생성될 때 우리는 기존에 있던 객체 내에서 변화가 되어질 수 있다. 이 변화될 수 있는 것이 StringBuffer객체의 특징이다.







Reference :

https://www.youtube.com/watch?v=zwocnEB9_1I&list=PL-8TVnCXtjy_xg_3qr4j5tn5qRrI-1wBQ&index=2