What exactly is the Java Real Time Specification? That is, how does it differ from the "regular" JSE or JEE specifications?
I assume you're talking about RTSJ, the Real-Time Specification for Java. This is a set of interfaces and related behavioral specifications that enable real-time development in Java.
That is, how does it differ from the "regular" J2SE or J2EE specifications.
RTSJ extends the Java language and library specifications in a way that permits real-time development to happen. For example, it's possible to specify regions of memory that aren't subject to garbage collection, which is more or less impossible with vanilla Java.
You can read a PDF version of the full spec here.
At its core, real-time computing is about predictability -- the knowledge that the system will always perform within the required time frame.
Basically, this is something you won't be able to achieve with the regular VM (and its stop-the-world GC amongst other things), hence the need for another specification:
The Real-Time Specification for Java (RTSJ), or JSR 1, specifies how Java systems should behave in a real-time context and was developed over several years by experts from both the Java and real-time domains.
The RTSJ is designed to seamlessly extend any Java family -- whether the Java Platform, Standard Edition (Java SE); Java Platform, Micro Edition (Java ME); or Java Platform, Enterprise Edition (Java EE) -- and has the requirement that any implementation pass both the JSR 1 technology compatibility kit (TCK) and the TCK of the platform -- Java SE, Java ME, or Java EE -- on which it is based.
The RTSJ introduces several new features to support real-time operations. These features include new thread types, new memory-management models, and other newly introduced frameworks. (...)
I warmly recommend the reading of: