ava is a programming language invented by Sun Microsystems, by James Gosling. Today Oracle owns Sun, and therefore Java too. Java is thus Oracles trademark.
Java is currently in version 6 (Java 6), but Java 7 is expected to be released soon. I will try to cover as much of Java 6 and 7 in this tutorial as I can. I will write explicitly if a feature is a Java 7 only feature.
When people talk about Java they often refer to several different parts of the total concept. These parts are:
  • Java Language
  • Java Bytecode
  • Java Virtual Machine (JVM)
  • Java API's
  • Java Runtime Environment (JRE)
  • Java Developer Kit (JDK)
  • Java Code Conventions
  • Java Standard Edition (JSE)
  • Java Enterprise Edition (JEE)
  • Java Application Servers
  • Java Micro Edition (JME)
  • JavaFX
  • Java Developer Community
I will try to go through each of these parts quickly in the sections below.

Java Language

First and foremost Java is a programming language. This means that there exists a Java language specification that explicitly tells what elements are part of the Java language itself. What the Java language is capable of doing.
It is the Java language itself that this tutorial is focused on.
Java files are stored in files suffixed with .java .

Java Bytecode

Java programs written in the Java language are compiled into Java bytecode which can be executed by the Java Virtual Machine.
The Java bytecode is stored in binary .class files.

Java Virtual Machine

Java is an interpreted language. What does that mean? Well, the Java language is compiled into Java bytecode. This Java bytecode is then executed by the Java Virtual Machine.
The Java Virtual Machine is like a computer. It can execute Java bytecode just like a PC can execute assembler instructions.
The Java Virtual Machine is implemented for several different operating systems, like Windows, Mac OS, Linux, IBM mainframes, Solaris etc. Thus, if your Java program can run on a Java Virtual Machine on Windows, it can normally also run on a Java Virtual Machine on Mac OS or Linux. Sometimes there are a OS specific issues that make your applications behave differently, but most of the time they behave very much alike. Sun referred to this as "Write once, run anywhere".
The Java Virtual Machine is itself a command line application which you start up in its own process. On the command line you tell it what Java class (bytecode) to execute.

Java API's

The Java language enables you to package components written in the Java language into API's which can be used by others in their Java applications. Java comes bundled with a lot such components. These components are known as the standard Java API's (Application Programming Interfaces).
These API's are available to all Java applications, since they are bundled with the Java platform (Java Runtime Environment).

Java Runtime Environment (JRE)

The Java Runtime Environment (JRE) is the Java Virtual Machine and the standard Java API's coming with Java Standard Editition (JSE). The JRE contains enough to execute a Java application.

Java Developer Kit (JDK)

The Java Developer Kit (JDK) is the JRE plus the Java compiler, and a set of other tools.
If you need to develop Java programs you need the full JDK. The JRE is not enough then.
Additionally, some Java servers may need some of the tools in the JDK to e.g. compile JSP's (Java Server Pages) etc.

Java Code Conventions

The Java Code Conventions are a set of conventions for how to format your Java code, and how to name classes, variables, files etc. Most of the time you do not have to follow these conventions, but most developers follow most of them.

Java Standard Edition (JSE)

Java has evolved into three different sets of API's, or "profiles" as some like to call them:
  1. The Java Standard Edition for desktop and standalone server applications.
  2. The Java Enterprise Edition for developing and executing Java components that run embedded in a Java server.
  3. The Java Micro Edition for developing and executing Java applications on mobile phones and embedded devices.
The Java Standard Edition contains the basic Java API's for standalone desktop and command line applications. There is both a JRE and JDK for the Java Standard Edition.

Java Enterprise Edition (JEE)

The Java Enterprise Edition contains a lot of extra tools and API's for executing Java components inside a Java Enterprise Server. Examples of enterprise Java components are:
  • Servlets
  • Java Server Pages (JSP)
  • Java Server Faces (JSF)
  • Enterprise Java Beans (EJB)
  • Two-phase commit transactions
  • Java Message Service message queue API's (JMS)
  • etc.

Java Application Servers

The Java Enterprise Edition is only a specification. Software vendors like IBM, Oracle etc. are free to implement this specification. And they have. Their implementations are usually called Java Application Servers, because the servers are capable of running Java applications, while offering a lot of standardized services to these Java applications.

Java Micro Edition

The Java Micro Edition is a version of Java targeted at small and embedded devices like PDA's, mobile phones etc.
Today (2011) the most popular Java platform to develop on for mobile phones is Google's Android platform.

JavaFX

JavaFX is a RIA (Rich Internet Application) framework. It is like Java Applets but with a lot more features, and with a completely different GUI API. JavaFX was inspired by Flex (Flash) and Silverlight for .NET (Microsoft).

Java Developer Community

The Java Developer Community consists of all the many Java developers out there which participate in the debate about Java and its future. The Java developer community has also developed a lot of open source API's and products.

Powered by Blogger.

- Copyright © 2013 Taqi Shah Blogspot -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -