코딩 테스트

Intro 코딩테스트에서 문자열을 변경하는 연산이 많을 때 흔히 StringBuilder를 사용한다. 성능상에 이점이 있어 그렇다고 하는데 구체적으로 왜 이점이 발생하는지 알아보고자 한다. String vs StringBuilder String은 이뮤터블 객체(Immutable Object)이다. 즉, 객체의 값을 변경할 수 없고 값을 변경하게 되면 다른 객체가 생성된다. 반면 StringBuilder는 뮤터블 객체(Mutable Object)이다. 즉, 객체의 값을 변경해도 기존 객체가 유지된다. 바로 이점이 성능의 차이를 발생시키는 것이다. 객체에 hello를 할당 한 뒤, 이후에 world를 추가한다고 했을 때: 1) String String s = "hello"; System.out.println..
이뮤터블 객체(Immutable Object) 이뮤터블 객체는 생성 후 그 상태가 변하지 않는 객체를 말한다. Java에서 대표적인 이뮤터블 객체로는 String, Integer, Float, Long 등이 있다. 정의만 보면 잘 와닿지가 않는다. 생성 후 상태가 변하지 않는다는 게 무슨말일까? 다음의 예시를 보면 이해가 쉽다. String s = "hello"; System.out.println(System.identityHashCode(s)); // 245257410 s += "world"; System.out.println(System.identityHashCode(s)); // 1283928880 System.identityHashCode(): 객체를 특정할 수 있는 식별값을 반환하는 메서드이다...
jaehee1113
'코딩 테스트' 카테고리의 글 목록 (18 Page)