Item62. 다른 타입이 적절하다면 문자열 사용을 피하라! Intro 문자열(String)은 텍스트를 표현하도록 설계되었다. 그런데 문자열은 워낙 흔하고 자바가 잘 지원해주는 바람에 원래 의도대로 쓰이지 않는 경향이 있다. 문자열을 쓰지 않아야 할 상황 1. 문자열은 다른 값 타입을 대신하기에 적합하지 않다. 많은 사람들이 ...
[Effective Java] Item61. 박싱된 기본 타입보다는 기본 타입을 사용하라!
Item61. 박싱된 기본 타입보다는 기본 타입을 사용하라! 자바의 데이터 타입 기본타입 int, double, boolean 등 참조타입 String, List 등 박싱된 기본타입 각각의 기본 타입에 대응하는 참조 타입 오토박싱과 오토언...
[Effective Java] Item60. 정확한 답이 필요하다면 float과 double은 피하라!
Item60. 정확한 답이 필요하다면 float과 double은 피하라! Intro float과 double 타입은 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 ‘근사치‘로 계산하도록 세힘하게 설계되었다. 따라서 정확한 결과가 필요할 때는 사용하면 안 된다. float과 dou...
[Effective Java] Item59. 라이브러리를 익히고 사용하라!
Item59. 라이브러리를 익히고 사용하라! 라이브러리 사용법을 익히지 못했을 때 public class Main { static Random rnd = new Random(); static int random(int n){ return Math.abs(rnd.nextInt()) % n; } pub...
[Effective Java] Item58. 전통적인 for 문보다는 for-each 문을 사용하라!
Item58. 전통적인 for 문보다는 for-each 문을 사용하라! Intro 아이템 45에서 봤듯이 스트림이 제격인 작업이 있고, 반복이 제격인 작업이 있다. 전통적인 for 문 // Collection for (Iterator<String> iter = c.iterator(); iter.hasNext()) { El...
[Effective Java] Item57. 지역변수의 범위를 최소화하라!
Item57. 지역변수의 범위를 최소화하라! Intro 아이템 15에서 얘기한 ‘클래스와 멤버의 접근 권한을 최소화하라’의 취지와 비슷한 맥락이다. 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고, 오류 가능성은 낮아진다. 지역 변수 범위 최소화 가장 처음 쓰일 때 선언하기 C와 같이 역사가 있는 언어...
[Effective Java] Item56. 공개된 API 요소에는 항상 문서화 주석을 작성하라!
Item56. 공개된 API 요소에는 항상 문서화 주석을 작성하라! Intro API를 쓸모 있게 하려면 잘 작성된 문서도 곁들여야 한다. 자바에서는 자바독(Javadoc)이라는 유틸리티가 API 문서 작성을 돕는다. 자바독은 소스코드 파일에서 문서화 주석이라는 특수한 형태로 기술된 설명을 추려 API 문서로 변환해준다. 문서화 주...