10 Jul 2023 EffectiveJava
문자열 연결 연산자 (+)는 여러 문자열을 하나로 합쳐주는 편리한 수단이다.
한 줄짜리 출력값 혹은 작고 크기가 고정된 객체의 문자열 표현을 만들 때라면 괜찮지만, 본격적으로 사용하기 시작하면 성능 저하를 감내하기 어렵다.
문자열 연결 연산자로 문자열 n개를 잇는 시간은 n²에 비례한다. 문자열은 불변이라서 두 문자열을 연결할 경우...
10 Jul 2023 EffectiveJava
문자열(String)은 텍스트를 표현하도록 설계되었고, 그 일을 아주 멋지게 해낸다.
그렇지만 문자열은 워낙 흔하고 자바가 또 잘 지원해주어 원래 의도하지 않은 용도로 쓰이는 경향이 있다.
이러한 사례를 정리해 보도록 하자.
적절하지 않은 문자열의 사용
문자열은 다른 값 타입을 대신하기 적합하지 않다.
많은 사람이 파일,...
10 Jul 2023 EffectiveJava
자바의 데이터 타입은 크게 두가지로 나누어 진다.
- 기본타입 : int, double, boolean…
- 참조타입 : String, List…
각각의 기본 타입에는 대응하는 참조 타입이 하나씩 있으며, 이를 박싱된 기본 타입이라고 한다. int, double, boolean에 대응하는 박싱된 기본타입은 Integer, Double, Boolean 이다.
박싱된 기본타입
오토박싱과...
09 Jul 2023 EffectiveJava
float와 double 타입은 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 ‘근사치’로 계싼하도록 세심하게 설계되었다.
정확한 결과가 필요할 때는 사용하면 안 된다. float와 double 타입은 특히 금융 관련 계산과는 맞지 않는다. 0.1 혹은 10의 음의 거듭 제곱 수(10⁻¹, 10⁻² 등)를...
09 Jul 2023 EffectiveJava
무작위 정수를 하나 생성하고 싶다고 해보자. 많은 프로그래머가 다음과 같은 짤막한 메서드를 만들곤 한다.
static Random rnd = new Random(); static int randon (int n) {...