开发者

Can anyone help me make sense of all these Java versions?

I am taking a Java programming class for school and the book required is for Java 5 SCJP Exam 310-055. I looked it up, I don't think that SE 5 is even supported anymore. Is this bad? The instructor says if I pass the Java Certification and show proof I can skip the class and get an instant A, but if it's outdated I don't know how I can even 开发者_如何学JAVAdo this?

I am also confused about the way Java handles the different versions. What the hell does Java 2 mean? Is Java 5 actually Java 2 version 5? What does SE 5 mean and how different is it from SE 6? I also see EE, what's the difference between SE and EE? What is the most up to date version of Java right now? Does JDK just mean SDK for Java? I am so confused.

Somebody needs to be slapped?

Edit: Just found out there is also a Java ME? D:


Most of these questions are answered in these Wikipedia pages:

  • Java Platforms - SE, EE, ME
  • Java SE version history
  • Java EE version history

From a language perspective, Java 5.0 and 6 are virtually identical. The differences between these two versions are in the area of the runtime libraries, and in performance related aspects of the platform. I think your instructor has made a good call.


I looked it up, I don't think that SE 5 is not even supported anymore.

You don't have to worry about this. Most books you read on SE 5 will still be relevant. You should concentrate on SE 6 though IMHO.

What does Java 2 mean? What does SE 5 mean and how different is it from SE 6?

Java 2 = SE n = Java 1.n where n >= 2 && n < 6. (I hope thats a fun way to say it rather than a confusing way ...)

Basically Java 1.2 and newer versions are Java 2.

SE 5 is Java 1.5

SE 6 is Java 1.6


A little more clarification:

Java 1.1 | Java 1.2 | ... | Java 1.5 | Java 1.6 |

         |           Java 2          |           

         |          | ... | Java SE5 | Java SE6 |

         |          | ... |  Java 5  |  Java 6  |

You can see the difference between SE 5 and 6 here.



The most recent version is Java 6 (aka 1.6) with Java 7 being developed, if I remember correctly.

SE means Standard Edition, whereas EE means Enterprise Edition. It's just a different set of standards and libraries but both complement each other (i.e. you can't normally use EE without SE).

As for the exam: I prepared for the Java 5 SCJP and did the Java 6 SCJP. That was no problem since between Java 5 and 6 there were only additions in the standard library (part of SE ;) ), no real changes in the language itself (as opposed to the changes from 1.4 to 5, except for the version name).


Java SE 6 is 98% the same as Java SE 5.0. The differences are subtle and you could program for years and never need to know what they are. (BTW There was no Java 5 or "SE 5")

If you are an expert in Java 5.0, that would more than qualify you to use Java 6.

I wouldn't worry about "Java 2 SE" as this an old marketing name which doesn't apply to any recent version of Java.

Java SE 5.0 is not provided free by Oracle, but you can get paid for support for it and previous versions.

Java SE 6 is provided free.


J2SE stands for Java 2 standard edition and is normally for developing desktop applications, forms the core/base API.

J2EE stands for Java 2 enterprise edition for applications which run on servers, for example web sites.

J2ME stands for Java 2 micro edition for applications which run on resource constrained devices (small scale devices) like cell phones, for example games.


Standard Edition (standard version) includes J2SE which constitute the core of the Java language.
For example: Database connectivity, interface definitions, input / output, Network Programming

Enterprise Edition (Enterprise Edition) J2EE included in the J2SE category, and also includes for the development of enterprise-class applications category.
For example: EJB, servlet, JSP, XML, Service Control

Micro Edition (miniature version) J2ME includes J2SE part in the category for the consumer electronics products of software development.
For example: Xiaowei, smart cards, mobile phone, PDA, set-top boxes

Their scope is: J2SE included in the J2EE, J2ME includes J2SE core categories, but add a number of new proprietary class


Java SE is the basic run-of-the-mill Java plus the set of standard libraries. (Standard Edition.) It comes in two flavours: the JRE (Java Runtime Environment) which is what you need to run Java programs and the JDK (Java Development Kit) which is what you need to make Java programs. (The latter has the compiler, for example, among other tools.) The current version of Java SE is 6 (although 7 is coming Real Soon Now™. Java 5 is well past its end of life and shouldn't be used for any new development.

Java EE is, basically, a huge application framework for enterprise applications built on top of Java SE. You need a Java SE implementation to run a Java EE implementation. The current version of Java EE is 6 but Java EE 5 is still in use and supported.

Java ME is a stripped down Java SE. It's targeted at small devices with (relatively) limited resources like mobile phones and the like. There's also a Java Card which is targeted at even more restrictive environments (and, if memory serves, actually modifies the language to do it).

That's it in a nutshell, but now the confusion...

Naming in the Java world has been powerfully confusing as Sun-now-Oracle has changed directions like a sailor after a major bender in a port dive. Java was just plain Java up to and including version 1.1. So it was Java 1.0, Java 1.1 (and, of course, JDK 1.0, JDK 1.1). Then Sun decided to signal that Something Big Was Happening™ for release 1.2 and renamed it to Java2. So Java2 was actually Java 1.2. This was also the beginning of the "SE" thing because they wanted to distinguish between the Java2 Platform Standard Edition (J2SE), Java2 Platform Enterprise Edition (J2EE) and the Java2 Platform Mobile Edition (J2ME). The JDK version was still 1.2, but the branding was Java2.

Then when the JDK 1.3 came out, confusingly it was still called Java2, but now version 1.3. So you had J2SE 1.3. This remained true up to and including J2SE 1.4. Then Sun changed things AGAIN. Now you have Java2 Standard Edition 5.0 as the branding name. The internal developer version was still only 1.5, but the external branding had changed. This changed yet again for the next release which was called Java SE 6 (dropping the "2" part of the brand). So in one major release and six minor releases the way Java has been branded has changed three or four times.

The same thing happened with EE. The first version of Java EE was Java2 Enterprise Edition 1.2 (J2EE 1.2) to coincide with the Java2 1.2 thing. This naming scheme was kept up to and including J2EE 1.4 when suddenly the brand was changed to Java EE 5. This was then later updated to Java EE 6 (the most current release).

I'm not up to speed at all on Java ME or Java Card so you'll have to puzzle those out yourself, but basically from what I've gathered its as confusing as the SE/EE suite or possibly even more so.

Good luck!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜