It can occasionally be difficult to wring every last bit of speed out of your JVM especially, it seems, when speed is important. A quickt way to find bottle necks it to use a profiler but I find a quicker method is to just not cause performace problems in the first place.
Rule number one when developing software it to get it right. Rule number two is make it fast. If it isn't right it doesn't matter how fast it runs it's worthless. The hints in this section should guide you to make the right choice when speed is important but hopefully they won't cause you to write unmaintainable code in the desperate pursuit of 3% better performance.