문자열을 처리하기 위하여 자바는 String 클래스를 사용한다. 그러나, 자바에서는 StringBuffer 클래스를 문자열 처리를 위한 또 한가지의 방법으로 제공하고 있다. 이 두가지 클래스의 차이점은 무엇이고 어떤 것을 사용하는 것이 좋은가를 알아보자.
- StringBuffer 객체는 내용을 변경할 때 String 객체보다 효율적인가?
- String 객체는 가지고 있는 문자열을 변경할 때 어느 정도 StringBuffer 객체에 비해 성능 저하를 보이는가?
- StringBuffer 및 String 클래스는 모두 문자열 처리에서 가장 많이 쓰이는 substring() 메소드에 대하여 String 객체를 생성한다. 그렇다면 성능상의 차이가 있는가?
- StringBuffer 객체는 toString() 메소드를 통하여 String 객체를 생성하여야만 다른 객체에 문자열을 전달할 수 있다. toString() 메소드를 통한 String 객체 생성의 자원 소모는 어느 정도 인가?
- String 객체 및 StringBuffer 객체의 생성은 어느 정도의 자원 소모를 필요로 하는가?
- String.concat() – String 클래스에 문자열 추가
- StringBuffer.append() – StringBuffer 클래스에 문자열 추가
- Stirng.substring() – String 클래스에서 문자열 일부 추출
- StirngBuffer.substring() – StringBuffer 클래스에서 문자열 일부 추출
- Stirng.toString() – String 클래스의 toString() 메소드 호출 (실제로는 자기자신을 돌린다)
- StirngBuffer.toString() – StringBuffer 클래스의 toString() 메소드 호출 (즉, String 객체로 변환)
- new String() – String 객체 생성
- new StringBuffer() – StringBuffer 객체 생성