I found an interesting article about Java Performance, definitely worth reading it: http://www.infoq.com/articles/9_Fallacies_Java_Performance.
The essence is, that performance optimization of Java applications is anything but straightforward. Naive, intuitive approaches might make things rather worse (something that is by the way often the case for architectural concerns). Also interesting, the actual impact of algorithm efficiency (or shall we say code quality in general?) on overall performance seems very low. Something that is perhaps particularly true for enterprise applications.