요약
•
자바 표준 라이브러리에는 우리가 모르는 도움이 되는 기능이 많으니, 잘 찾아보고 잘 읽고 잘 쓰자.
표준 라이브러리를 익히고 사용하자
static Random rnd = new Random();
static int random(int n) {
return Math.abs(rnd.nextInt()) % n;
}
Java
복사
•
위 코드에는 3가지 문제가 있다.
◦
n이 그리 크지 않은 2의 제곱수라면 얼마 지나지 않아 같은 수열이 반복된다.
◦
n이 2의 제곱수가 아니라면 몇몇 숫자가 평균적으로 더 자주 반환된다.
◦
지정한 범위 바깥의 수가 종종 튀어나올 수 있다.
•
이런 결함을 해결하기 위해서는 의사 난수 생성기, 정수론, 2의 보수 계산 등에 조예가 깊어야 하는데, 다행히 Random.nextInt(int)를 사용하면 간단하게 해결된다.
•
Random이 필요한 경우 더 빠르고 더 고르게 분포된 난수를 생성하는 ThreadLocalRandom을 사용하는 것이 좋다.
•
이처럼 표준 라이브러리를 사용하면 여러 이점들이 있다.
◦
표준 라이브러리를 사용하면 해당 코드를 만든 전문가의 지식과 다른 프로그래머들이 사용했던 경험을 활용할 수 있다.
◦
표준 라이브러리를 사용하면 핵심적인 일과 크게 관련 없는 문제를 해결하느라 시간을 허비하지 않아도 된다.
◦
따로 노력하지 않더라도 성능이 지속해서 개선된다.
◦
기능이 점점 많아진다.
◦
작성한 코드가 다른 많은 사람들에게 낯익은 코드가 되어, 더 읽기 좋고 유지보수하기 쉽고 재사용이 쉬워진다.
•
이렇게 표준 라이브러리를 사용하면 수많은 이점들이 있는데, 사람들은 라이브러리에 그런 기능이 있는 줄 모르고 직접 구현해서 사용하고 있다.
•
라이브러리가 너무 방대하여 모든 API 문서를 공부하기는 벅차겠지만, 자바 프로그래머라면 적어도 java.lang, java.util, java.io와 그 하위 패키지들 정도는 익숙해져야 한다.
•
그 외에도 컬렉션 프레임워크와 스트림 라이브러리, java.util.concurrent의 동시성 기능도 알아두면 큰 도움이 된다.
•
바퀴를 다시 발명하지 말자!