Reading/Effective Java (65) 썸네일형 리스트형 [Effective-Java] Item 62, 63.다른 타입이 적절하다면 문자열 사용을 피하라, 문자열 연결은 느리니 주의하라 참조에 나온 내용을 인지하고 있다는 가정하에 작성해서 두 레퍼런스를 참조했다! [참조1] / [참조2] [Effective-Java] Item 62.다른 타입이 적절하다면 문자열 사용을 피하라 문자열 String은 텍스트를 표현하도록 설계되었지만, 워난 흔하며 자바의 좋은 지원때문에 의도하지 않은 용도로 쓰이는 경향이있다. 올바르지 않게 사용된 사례 1. 문자열은 다른 값 타입을 대신하기 적합하지 않다. 다양한 입력으로부터 데이터를 받을 때 주로 문자열을 사용하는데, 자연스러워 보이지만 진짜 문자열일 때만 사용하는게 좋다. 기본 타입이든 참조 타입이든 적절한 값 타입이 있다면 그것을 사용하고 없다면 새로 만들자. 2. 문자열은 열거 타입을 대신하기 적합하지 않다. 상수를 열거할 땐 문자열보단 열거 타입.. [Effective-Java] Item 61.박싱된 기본 타입보다는 기본 타입을 사용하라 기본 타입과 박싱된 기본 타입의 차이 기본 타입은 값만 가지나, 박싱된 기본 타입은 식별성이라는 속성을 갖는다.(값이 같아도 서로 다르다고 식별될 수 있다) 기본 타입의 값은 언제나 유효하나 박싱된 기본 타입은 null일 수 있다. 기본 타입이 박싱된 기본타입보다 시간과 메모리 사용면에서 더 효율적이다. 박싱된 기본타입의 비교자 잘못 구현된 비교자 Comparator naturalOrder = (i, j) -> (i < j) ? -1 : (i == j ? 0 : 1); int result = naturalOrder.compare(new Integer(42), new Integer(42)); 위 코드의 result는 값이 같으므로 0을 출력해야하지만 1을 출력한다. 첫 번째 검사(i [Effective-Java] Item 60.정확한 답이 필요하다면 float와 double은 피하라 float과 double은 이진 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 '근사치'로 계산하도록 설계되었다. 따라서 정확한 결과가 필요할 땐 사용해선 안되며, 특히 금융 관련 계산과는 맞지 않는다. 10의 음의 거듭제곱 수를 표현할 수 없어서다. float과 double이 사용하는 IEEE-754 부동소수점 관련 참고하면 좋은 레퍼런스가 두 곳 있어서 참고했다 :) [참고1] / [참고2] / [참고3] 1달러가 있다고 하고, 10, 20, 30, 40... 센트짜리 사탕이 있다면 살 수 있을때까지 순서대로 산다고 생각해보자. 0.1+0.2+0.3+0.4 = 1.0 이라서 아래 코드가 4개가지 구매 가능하고, 잔돈이 없다고 생각할 수 있다. public static void main(S.. [Effective-Java] Item 59.라이브러리를 익히고 사용하라 Random Random 섹터에서 이슈는 아래와 같이 정리했습니다. [아이템 59] Random 클래스의 nextInt()와 URL 예제 · Issue #15 · Reading-Effective-Java/community p351. 앞의 두가지 문제점에서 n이 크지않은 2의 제곱수와 2의 제곱수가 아닐때 평균적으로 더 자주 반환된다고 나와있는데 n을 Integer.MAX_VALUE로 설정하거나 /2, /3을 했을 때는 중간값에 거의 수렴 github.com 0부터 n까지 수 사이에서 무작위 정수 하나를 생성하려 한다고 해보자. 그러면 다음과 같이 만들어 볼 수 있을 것이다. static Random rnd = new Random(); static int random(int n) { return Math... 이전 1 2 3 4 5 6 7 ··· 17 다음