Java2 practical tutorial study notes