Java SE 6 primary focus was to yield improved performance and scalability, according to various blogs over at Sun Microsystems. So in what way were these performance improvements made to Java SE ? The following blog post contains various in depth discussions on the subject.
The runtime performance optimization includes implementation of biased locking, lock coarsening, adaptive spinning, larger page heap support, background compilation and the new registry allocation algorithm. (Explanation on all 6 topics included ) Further, the Java Virtual Machine's boot and extension class loaders have been enhanced to improve the cold-start time of Java applications. Another key features of J2SE 6 is the implementation of StAX(Streaming API for XML) - a bi-directional API for reading and writing XML. It is based on the mechanism of "pull parsing", which combines the ease of use of DOM parser with the efficiency of the SAX parser. In Java SE 6, SJSXP(Sun Java Streaming XML Parser) is the default implementation of StAX.
Read the entire post on Performance improvements in Java SE 6: http://blogs.sun.com/shobana/entry/performance_improvements_in_j2se_6