CH9-21~24 StringBuilder, Math 클래스

[자바의 정석 - 기초편] ch9-21~24 StringBuilder, Math클래스

스트링 빌더는 스트링 버퍼와 동일하지만(메서드 이름까지 다 동일함) 차이가 딱 하나 잇다.

스트링 버퍼는 동기화가 되어있고, 스트링 빌더는 동기화가 되어있지 않다.

동기화는 지금 수준에선 멀티쓰레드에 안전(thread-safe)하다는 의미로 받아들이면 된다.

13장에서 멀티쓰레드 프로그래밍 배울 것임.

멀티쓰레드의 단점은 한번에 여러작업을 하면서 데이터를 공유한다. 이때 레이스 컨디션 등의 문제가 생기거나… 데이터가 오염되는 일이 생길 수 있음. 이 데이터를 막아주기 위해 각 쓰레드별로 동기화한다. 그래서 멀티쓰레드에 안전하다는 의미임.

참고로 이 동기화는 멀티쓰레드 프로그램이 아닐 경우, 동기화는 불필요한 성능저하를 가져온다. 이럴때는 스트링버퍼 대신 스트링 빌더를 사용하면 성능 향상 가능.

엄청난 향상은 아니라서.. 그냥 스트링버퍼만 써도 된다.

스트링버퍼와 스트링 빌더는 메서드이름까지 다 같아서, 만약 스트링 빌더에서 스트링 버퍼로 넘어가고 싶다면 클래스 이름만 바꾸주면 된다.

그 다음은 Math클래스를 보자. 수학관련된 메서드들의 집합이다. iv가 없어서 전부 스태틱 메서드로 이루어져 있다.

상수가 몇개 있음. 자연로그의 밑 E와 원주율 PI가 있음.

round()로 반올림 하기

Untitled