Java seems to be mostly a step backwards from C++ in terms of expressiveness, with kludges here and there to hide the fact. Because the kludges are very slow, I have had significantly less luck optimizing Java than C++.
as an aside, I feel old being able to talk about having programmed for years.
my first programming experience was in unstructured BASIC. I think I've managed to reverse the brain damage from that, but I can't be too sure.