I read an interesting blog at http://blogs.sun.com/shobana/entry/performance_improvements_in_j2se_6 which gives detailed explanation of Performance improvements in J2SE 6.
Overall, performance improvements are done in these areas
* Runtime performance optimization
* Better garbage collection and
* Some client side features
Improvement in runtime performance optimization is achieved through biased locking, lock coarsening, adaptive spinning, larger page heap support, background compilation and the new registry allocation algorithm.
Biased locking is useful for application where lots of resources are read and written. It is also good to see JVM becoming "Adaptive". I think this is good but the "adaptive algorithms" have to be really good.
The release notes has some noteworthy changes in Swings which is good. More controls are added and double buffering has been added to avoid Gray Rect” problem.
I wonder if anyone has done any performance analysis of J2SE 5 vs J2SE 6.