Clear about Java?
For those of you who thought that Java was just an island or a cup of coffee, this article is probably not of much use to you. However, this is an attempt to clarify some of the various aspects of Java and its associated technologies.
WHAT IS JAVA?
Java is an object oriented programming language that provides the means of running the same “code” in a Java Virtual Machine (JVM) for each operating system. It is specifically designed for writing programs that can be safely downloaded to your computer through the Internet and immediately run without fear of viruses or other harm to your computer or files.
Java programs are compiled into an intermediate form called “byte-code”. The byte-code is loaded and executed in the JVM. The JVM is specific to the operating system, but the byte-code it runs is created once and only requires a target JVM. This split between the specific execution environment and the universal byte-code enables Java programs to be “platform-independent”. Or as they say, “create once, use everywhere”.
WHO THOUGHT OF IT?
Java was developed by Sun Microsystems and officially released in 1996. The creation of Java was a direct response to the demands and growth of the Internet. Sun encouraged the involvement of the developer community from the outset by making available the source code of the core Java programming language as well as a developers’ kit with each release.
WHAT’S WITH ALL THE CONVENTIONS AND STANDARDS?
So why do we need Naming conventions, Coding standards, JDK, Javabeans, JSP, Servlets, Servlet Engines, Applets, JDBC, etc.?
According to the creator of Java, Sun Microsystems:
“Java technology is a portfolio of products that are based on the power of networks and the idea that the same software should run on many different kinds of systems and devices.”
- http://java.sun.com/
There are various structures within Java that have evolved to solve specific problems. These range from facilitating development to providing a JVM for every circumstance and platform to execute Java. All these structures provide a universal set of references for solving specific issues. This is why as new technologies and standards come along, e.g. XML, Application servers, etc., the Java references continue to grow.
EXAMPLES OF JAVA TECHNOLOGIES
I will detail some examples of the Java technologies below:
Javabeans - supply a standard way of interfacing with re-usable components to enable developers to easily understand and apply existing components instead of recreating the same functionality. Basically making the path of least resistance that of reusing components instead of rewriting or recreating them.
Servlet Engine, Servlets and JSPs - allow Java code to be executed via HTTP requests. The Java Server Pages (JSP) are files containing Java code that is compiled into a Servlet (byte-code) and executed by the Servlet Engine. The result is returned as a HTTP response to the HTTP request.
The Servelet Engine provides the JVM for the servlets and a compilation environment for the JSP files to convert them to servlets. This activity is carried out on the server and only the final result is sent to the waiting client.
Applets - allow Java components to be supplied by a remote server to a client machine and run in a client application like a web browser. The web browser needs access to a JVM to execute the java byte-code.
Java Platform - The Java platform is a software-only platform that runs on top of other hardware-based platforms. These have been split into the following suites (see http://java.sun.com/overview.html):
- Java 2 Platform, Standard Edition (J2SE) - provides the core and desktop Java environment. This is a subset of the J2EE suite.
- Java 2 Platform, Enterprise Edition (J2EE) - targeted at enterprise application development and defines standards for developing component-based and multi-tier enterprise applications.
- Java 2 Platform, Micro Edition (J2ME), provides technologies and specifications for consumer and embedded devices, such as mobile phones, personal digital assistants (PDA’s), printers and TV set-top boxes.
- Java Card technology - Provides Java capabilities to smart cards and other intelligent devices with limited memory and processing capabilities.
REFERENCES
Java - http://java.sun.com
Technologies overview - http://java.sun.com/overview.html
Technorati Tags: Java, byte code, standards, technologies

