java premature optimization