This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
"SDK" stands for "Software Development Kit", an older name for the tools used to develop Java apps. Sun changed the name of the kit the "Java Development Kit" some time ago. One uses the JDK to write applications using the J2SE, or "Java Standard Edition" API (J2SE ). J2EE, on the other hand, is the "Java Enterprise Edition" and contains a bunch of components built on top of the J2SE. These include servlets, EJB's, email, and other business-oriented API's. Does that make sense?
Actually, the history is even more confusing than what Joe explains.
At the time of Java version 1.0, Sun provided the JDK, Java Development Kit.
Then when Java 1.2 came out, for some strange reason Sun decided to call it "Java 2", and the JDK was renamed to Java 2 SDK (Software Development Kit).
Now we have Java 1.5 (or Java 5.0, it's the same, thanks for the confusion, Sun...) and it's called JDK again instead of Java 2 SDK...
There are several editions of Java:
J2SE - Java 2 Standard Edition, which contains the standard API. J2EE - Java 2 Enterprise Edition. This is a set of APIs on top of J2SE, especially meant for large scale business applications. J2ME - Java 2 Micro Edition. This is a set of APIs for mobile devices and other small devices with a limited amount of processing power and memory.
The normal JDK is what you need to develop programs in Java. You can download implementations of J2EE and J2ME from Sun, which you install on top of the JDK, if you want to develop programs using the J2EE or J2ME APIs.
If you're just starting to learn Java, forget about J2EE and J2ME for a while.
By the way, in the next version, Sun is going to drop the "2" again and we'll be talking about JSE (Java Standard Edition), JEE and JME.