J2EE 6 spec is out and been implemented as well.
J2EE is old. JEE6 is new. Put in a nutshell, the key differences (according to my observations) are:
1) GUI Layer: JSF (JEE6) instead of JSP (J2EE). This is a real "quantum leap" in UI technology.
2) EJB Layer: Much, much simpler to use
JPA instead of EntityBeans,
Much easier development of Session Beans / Message Driven Beans: XML descriptors and JNDI peculiarities all replaced by simple annotatins
The advent of the @Singleton Bean, much better Timer support, ...
3) Integration: CDI for integration, all annotation-based, no more XML descriptors / JNDI voodoo
CDI in particular seems to be a very interesting programming paradigm.
And, of course, deployment and IDE integration have matured as well. You can run "instant deployment" and immediatly debug the changes you just made. The "Verifier" or "Deployment tool" of the old GlassFish versions (eg) have all gone for good.