A. A LITTLE BIT OF HISTORY
Java was created in 1991 by James Gosling et al. of Sun Microsystems. Initially called
Oak, in honor of the tree outside Gosling's window, its name was changed to Java
because there was already a language called Oak.
The original motivation for Java was the need for platform independent language that
could be embedded in various consumer electronic products like toasters and
refrigerators. One of the first projects developed using Java was a personal hand-held
remote control named Star 7.
At about the same time, the World Wide Web and the Internet were gaining popularity.
Gosling et. al. realized that Java could be used for Internet programming.
B. WHAT IS JAVA TECHNOLOGY?
1. A programming language
As a programming language, Java can create all kinds of applications that you could
create using any conventional programming language.
2. A development environment
As a development environment, Java technology provides you with a large suite of
tools: a compiler, an interpreter, a documentation generator, a class file packaging tool,
and so on.
3. An application environment
Java technology applications are typically general-purpose programs that run on any
machine where the Java runtime environment (JRE) is installed.
4. A deployment environment
There are two main deployment environments: First, the JRE supplied by the Java 2
Software Development Kit (SDK) contains the complete set of class files for all the Java
technology packages, which includes basic language classes, GUI component classes,
and so on. The other main deployment environment is on your web browser. Most
commercial browsers supply a Java technology interpreter and runtime environment.
C. SOME FEATURES OF JAVA
1. The Java Virtual Machine
The Java Virtual Machine is an imaginary machine that is implemented by emulating
software on a real machine. The JVM provides the hardware platform specifications to
which you compile all Java technology code. This specification enables the Java software
to be platform-independent because the compilation is done for a generic machine
known as the JVM.
A bytecode is a special machine language that can be understood by the Java Virtual
Machine (JVM). The bytecode is independent of any particular computer hardware, so
any computer with a Java interpreter can execute the compiled Java program, no matter
what type of computer the program was compiled on.
2. Garbage Collection
Many programming languages allows a programmer to allocate memory during runtime.
However, after using that allocated memory, there should be a way to deallocate that
memory block in order for other programs to use it again. In C, C++ and other
languages the programmer is responsible for this. This can be difficult at times since
there can be instances wherein the programmers forget to deallocate memory and
therefor result to what we call memory leaks.
In Java, the programmer is freed from the burden of having to deallocate that memory
themselves by having what we call the garbage collection thread. The garbage
collection thread is responsible for freeing any memory that can be freed. This happens
automatically during the lifetime of the Java program.
3. Code Security
Code security is attained in Java through the implementation of its Java Runtime
Environment (JRE). The JRE runs code compiled for a JVM and performs class loading
(through the class loader), code verification (through the bytecode verifier) and finally
code execution.
The Class Loader is responsible for loading all classes needed for the Java program. It
adds security by separating the namespaces for the classes of the local file system from
those that are imported from network sources. This limits any Trojan horse applications
since local classes are always loaded first. After loading all the classes, the memory
layout of the executable is then determined. This adds protection against unauthorized
access to restricted areas of the code since the memory layout is determined during
runtime.
After loading the class and layouting of memory, the bytecode verifier then tests the
format of the code fragments and checks the code fragments for illegal code that can
violate access rights to objects.
After all of these have been done, the code is then finally executed.
D. PHASES OF A JAVA PROGRAM
The following figure describes the process of compiling and executing a Java program.
· The first step in creating a Java program is by writing your programs in a text editor.
Examples of text editors you can use are notepad, vi, emacs, etc. This file is stored in a
disk file with the extension .java.
·After creating and saving your Java program, compile the program by using the Java
Compiler. The output of this process is a file of Java bytecodes with the file extension
.class.
·The .class file is then interpreted by the Java interpreter that converts the bytecodes
into the machine language of the particular computer you are using.
Task
1. Write the program
2. Compile the program
3. Run the program
Tool to use
1. Any text editor
2. Java Compiler
3. Java Interpreter
Output
1. File with .java extension
2. File with .class extension(Java Byte Codes)
3. Program Output
E. DIFFERENCE BETWEEN JAVA APPLICATIONS AND JAVA APPLETS
- Java applets are java programs that run in a web browser, it is dependent on web browsers.
- Java applications are stand alone java programs. It can be run in a console window or a graphical user interface.
F. WHAT MAKES JAVA AN OBJECT ORIENTED LANGUAGE