Thingking in java third and fourth edition