http://www.javaworld.com/javaworld/jw-07-2008/jw-07-harmful-idioms.html
http://library.dzone.com/sites/all/files/refcardz/rc024-corejava_online.pdf
java enum 정리 3 - java.lang.Enum 클래스와 enum의 실체
http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Core/lang/java/lang/Enum.java.htm
http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Core/lang/java/lang/Enum.java.htm
public enum OilProduct {
GASOLINE("휘발유", 1), HIGH_GRADE_GASOLINE("고급휘발유", 2), DIESEL("경유", 3);
private String name;
private int productId;
private static Map<Integer, OilProduct> enumMap = new HashMap<Integer, OilProduct>();
static {
for (OilProduct each : OilProduct.values()) {
enumMap.put(each.getProductId(), each);
}
}
private OilProduct(String name, int productId) {
this.name = name;
this.productId = productId;
}
public String getName() {
return name;
}
public int getProductId() {
return productId;
}
public static OilProduct fromProductId(int id) {
OilProduct matched = enumMap.get(id);
if (matched == null) {
throw newIllegalArgumentException("cannot find OilProduct for productId:" + id);
}
return matched;
}
}
Using Java Reflection (번역 : Java Reflection 의 사용 )
Java programming dynamics, Part 2: Introducing reflection
Java Reflection - Call stack introspection
introspection : 객체 내부의 상태나 그 상태정보를 수집하고 변경하는 행위 모두
reflection :
우리가 프로그래밍하는 언어는 컴퓨터의 자원을 이름과 식별자로 추상화한 개념을 사용한다. 실제로 이름과 식별자가 커퓨터의 자원으로 구체화되는 과정을 바인딩이라 부른다. 구체화되는 과정에서 바인딩하는 시점은 언어 정의시간, 언어 구현시간 ,번역시간 ,실행시간 네 가지로 구분된다. 여기서 언어 정의시간, 언어 구현시간과 번역 시간에 구체화 되면 이른 바인딩(early binding)이라고 부르고, 실행시간에 구체화되면 늦은 바인딩(late binding)이라고 부른다. 또 번역 시간을 정적 바인딩(static binding), 실행시간을 동적바인딩(dynamic binding)이라고 부르는데 자바에서는 늦은 바인딩을리플렉션이라고 부른다.
(Exception)
클래스 로딩 문제 분석하기, Part 2: 기본적인 클래스 로딩 예외(Exception) (한글)
Logging/StaticLog (원문 http://wiki.apache.org/jakarta-commons/Logging/StaticLog)
http://www.javakb.com/Uwe/Forum.aspx/java-tools/451/Eclipse-mthclass-problem
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4419673
Excuting an external program using Runtime.exec() method or ProcessBuilder class
Defenseive copying http://www.javapractices.com/Topic15.cjp
Cloning
http://www.adtmag.com/java/articleold.aspx?id=223
http://www.adtmag.com/java/articleold.aspx?id=364
자바 System.out.println 콘솔 출력 가로채기