1 답변
-
1. String
1-1. 특징
- String 객체는 immutable 이다. 즉, 한번 생성되면 String 객체가 변할 수 없다.
- 문자열, 숫자, char 등을 concat 할때는 StringBuffer, StringBuilder 를 사용할 수 있지만 단순한 경우에는 + 를 활용해 직접 합쳐도 된다.
2. StringBuffer 와 StringBuilder 차이점
2-1. 특징
- 기본적으로 두 클래스가 제공하는 메소드는 동일하지만 StringBuffer는 멀티 쓰레드 상태에서 동기화를 지원한다. (각 메소드 별로 synchronized 키워드가 존재)
- String 을 + 를 활용해 합치는 경우 매번 인스턴스를 생성하기 때문에 성능상에 이슈가 많다. 이런 성능 이슈를 개선하기위해 JDK 1.5 버전 이후에는 컴파일 단계에서 StringBuilder로 컴파일 되도록 변경되기 때문에 + 를 활용해도 성능상에 큰 이슈는 없다.
1 ** String 클래스의 원리** String a 값에 계속 값을 더해가는 경우 새로운 String 클래스가 만들어 진다. StringBuffer 나 StringBuilder 의 원리 새로운 객체를 생성시키지 않고, 기존에 있는 객체의 크기를 증가시키면서 값을 더한다. http://egloos.zum.com/top2blue/v/5148222
댓글 입력