Java is a programming language and a platform to develop and run software applications. It comes in different flavors:
- Java Standard Edition (Java SE)
This is the plain vanilla version of Java. You can implement any software application with it. Java SE has a large library of code which includes many reusable software functions. Java EE and Java ME described below are built on top of Java SE. - Java Enterprise Edition (Java EE)
This flavor of Java builds on Java SE. Java EE contains additional libraries of code and development tools that are uniquely useful in developing business applications. - Java Micro Edition (Java ME)
Than being yet another extension to Java SE, this is in fact a reduced version of Java SE and an associated library of software that addresses the unique needs of Java applications that should run on limited capability devices like mobile phones and PDAs.
When we simply say “Java”, we mostly mean Java Standard Edition.
J2EE refers to the first version of Java Enterprise Edition.
Java (i.e. Java SE) does not mandate you to use specific patterns or architectures in implementing applications. It is the plain version of Java and you can implement your application in any preferred way.
Java EE however describes an overall architecture that your business application should adhere to. Java EE also includes best practices and guidelines that you may follow in addressing the unique requirements of business applications.