http://docs.oracle.com/cd/B28359_01/java.111/b31225/chfour.htm