Difference Between J2SE and J2EE

J2SE vs J2EE

Java is one of the most widely used object oriented programming languages, which is used from software development to web development today. It is a general purpose and concurrent programming language. It was originally developed by Sun Microsystems in 1995. James Gosling is the father of the Java programming language. Oracle Corporation now owns Java (after buying Sun Microsystems recently). Java is a strongly typed language that supports a range of platforms from Windows to UNIX. Java is licensed under GNU General Public License. Since it initial release in 1995 (Java 1.0) it has grown and become the dominant development language for developing web-based applications. J2SE is the Java 2 Platform Standard Edition, which provides the set of basic classes and APIs. Java 6 is its current stable release. J2EE is Java 2 Platform Enterprise Edition, which provides advanced technologies and APIs built on top of the functionality provided by J2SE. Developers of Java changed names of all the editions recently, and now J2SE and J2EE are known as Java SE and Java EE respectively.

What is J2SE?

J2SE is a collection of basic Java classes and APIs. Its latest version Java 6 (also known as Java Standard Edition 6.0 or Java SE 6 or Java 1.6), codenamed Mustang, was released in December, 2006. Current revision is the Update 26, which was released on June, 2011. It has 3700+ classes and interfaces. It focuses on new specifications and APIs including XML, Web Services, JDBC version 4.0, programming based on Annotations, API’s for Java compiler and Application client GUI. This was on top of already existing features like Annotations, Generics and Autoboxing. Annotations are a mechanism for tagging classes with metadata so that they can be used by metadata-aware programs. Generics is a mechanism of specifying types for objects belonging to collections such as Arraylists, so that type safety is guaranteed at compile time. Autoboxing allows the automatic conversions between primitive types (e.g. int) and wrapper types (e.g. Integer). Also, the support for older versions of Windows (Win9x series) was removed starting from the Update 7.

What is J2EE?

J2EE provides a server programming platform in Java. J2EE adds functionality (libraries) for the deployment of distributed and multi-tier java applications running on application servers. Current version of J2EE is Java EE 6. JDBC (Java Database Connectivity), RMI (Remote Method Invocation), JMS (Java Message Service), web services and XML are some of the specifications offered by Java EE. Furthermore, specifications unique to Java EE such as Enterprise JavaBeans (EJB), Connecters, Servlets, portlets, Java Server Pages (JSP) are also offered. The aim of this is to allow programmers to develop application with high scalability and portability. Java EE developers can focus on business logic (instead of infrastructure/integration) because the application servers will take care of transactions, security and concurrency.

What is the difference between J2SE and J2EE?

J2SE is a collection of base classes and APIs that provides basic functionality (Java language, virtual machine and base libraries) for developing standard Java applications, while J2EE offers a collection of technologies and APIs for developing multi-tier enterprise applications. In other words, J2SE is used for developing applications that execute as standalone desktop programs or applets, but J2EE is typically used for writing applications that execute inside a J2EE container. J2EE has all the functionality of J2SE. But, it has additional functionality such as EJB, JSP, Servelts and XML technology. It also includes tests for checking the compliance of applications with existing applications that support J2EE.