반응형
0부터 시작하는 난수를 만들어라 !
private static final Random rd = new Random();
// 문제가 있는 코드
static int random(int n){
return Math.abs(rnd.nextInt()) % n;
}
문제점
· n이 그리 크지 않아 2의 제곱수일 경우 중복된 난수들이 만들어 낼 것
· n이 제곱수가 아닐 경우 어떤 수는 다른 수보다 평균적으로 더 자주 등장할 것
· 지정된 구간 밖에 있는 난수를 반환하는 치명적 오류가 발생할 수 있다.
따라서 해결하기 위해서는 가상난수 생성기, 수 이론, 2의 보수 연산에 대해 알아야한다.
하지만 릴리즈 1.2부터 Random.nextInt(int)가 포함되었다.
라이브러리 사용의 장점
· 그 라이브러리를 개발한 전문가의 지식 뿐만 아니라 라이브러리를 사용한 사람들의 경험을 활용할 수 있다.
· 실제로 하려는 일에 집중할 수 있다. 다른 구현을 위해 시간을 낭비할 필요가 없다.
· 별다는 노력을 하지 않아도 그 성능이 점차 좋아진다.
· 표준 라이브러리를 사용하면 주류(mainstream) 개발자들과 같은 코드를 만들게 된다.
ㄴ 가독성이 높고, 유지보수가 쉬우며, 다른개발자들이 재사용하기 편하다.
라이브러리를 사용할때 주의점
· 중요한 새 릴리즈가 나올 때마다 많은 기능이 새로 추가되는데, 그 때마다 어떤 것들이 추가되었는지 알아두어야 한다.
· java 프로그래머라면 java.lang, java.util 안에 있는 내용은 알고 있어야 하며 java.io의 내용도 어느정도 알고 있어야한다.
결론
바퀴를 다시 발명하지 말라.
반응형
'IT > Programming' 카테고리의 다른 글
<Effective Java> RULE 45 지역 변수의 유효범위를 최소화하라 (0) | 2023.04.26 |
---|---|
<Effective Java> RULE 46 for문 보다 for-each문을 사용하라 (0) | 2023.04.26 |
<Effective Java> RULE 48 정확한 답이 필요하다면 float와 double은 피하라 (0) | 2023.04.26 |
<Effective Java> RULE 49 객체화된 기본 자료형 대신 기본 자료형을 이용하라 (0) | 2023.04.26 |
<Effective Java> RULE 50 다른 자료형이 적절하다면 문자열 사용은 피하라 (0) | 2023.04.26 |