본문 바로가기

학습 log (이론)/java7

'java api' 기초 #1 필요이상으로 노출하지마라usecase를 작성해본 뒤 적합하다면 메소드로 제공하라실력이 부족할수록 API가 장황해진다 1.메서드가 필드보다 낫다getter, 접근자늦은 초기화, 접근 동기화, 계산적인 알고리즘을 이용해 값을 조정setter, 설정자할당된 값이 올바른지 검사, 변경된 값 리스너로 전달필드는 옮길 수 없지만 메서드는 상위 클래스로 옮겨도 유지됨public static final, 문자열 상수, enum 값, 불변 객체 외에는 노출 금지 2.생성자보다 팩터리가 낫다 (싱글톤 패턴)대상 클래스의 하위 클래스를 반환, 다형성을 통해 코드를 깔끔하게 정리 가능인스턴스화했던 객체를 캐싱하여 재사용함으로 메모리 절약, 인스턴스 캐싱메서드를 효율적으로 동기화가능 3.모든 것을 final로 만들어라서브 클래.. 2016. 11. 27.
'핸들러' 스레드 통신을 위한 HandlerMessageQueue에 Message를 넣기 위한 클래스Thread간 메시지를 주고 받기 위해 사용handlerMessage()메소드를이용하여 message를 다양하게 처리 가능MyHandler handler = new MyHandler(); 변수 및 메소드Message obtainMessage(int what, int arg1, int arg2, Object obj);전달할 메시지를 저장위의 변수 중에 필요한 것만 작성what, 메시지 구분 변수arg1, 전달할 정수 값arg2, 전달할 정수 값obj, 전달할 객체 boolean sendMessage(Message msg)바로 전송boolean sendMessageAtFrontOfQueue(Message msg)최우선 전송boolean s.. 2016. 11. 13.
'Math' 수학관련 함수 abs(), 절대값 a = |b|, -4 = |4| = 4int a = Math.abs(b) max(), 최대값 b,c 중 큰 수int a = Math.max(b,c) min(), 최소값b,c 중 작은 수int a = Math.min(b,c) ceil(), 값올림3.4 = 4, 3.5 = 4, 3.7 = 4double z = Math.ceil(3.4); round(), 반올림3.4 = 3, 3.5 = 4, 3.7 = 4double z = Math.round(3.5); floor(), 값내림3.4 = 3, 3.5 = 3, 3.7 = 3double z = Math.floor(3.7); sqrt(), 제곱근z = 제곱근 기호 xdouble z = Math.sqrt(x) exp(), e 지수 z = e 의 x승.. 2016. 10. 16.