Think in java practice by yuez