for development and deployment of cross-platform applications. After
you've worked with Java technologies for a while, you'll realize that
they're also much more than that - they're a way of
software systems and how they work together.
Java is an interpreted language. This means that program code (in
a .java source file) is compiled into a platform-independent set of
bytecodes (a .class file) instead of into machine-specific instructions
(which is what happens to a C program). These bytecodes are then
executed on any machine that hosts a Java platform, a software-only
platform that runs on top of a native platform (the combination of an
operating system and the underlying hardware). A Java platform is divided
into two components:
The Java virtual machine (JVM) that executes the Java language
bytecode can be ported to various native platforms.
The collection of Java APIs are ready-made software libraries that
provide programming capabilities.
Together, the JVM and the APIs form the Java platform which insulates
an application from the native platform.
This was a remarkable achievement but it was not achieved without
cost. Support for low-level power and fine-grained control was sacrificed,
as well as explicit memory management and pointers. It was almost
impossible to write Java software that would corrupt memory, but pro-
grammers couldn't dispose of memory themselves (to the horror of many
there was a new keyword but no delete ); instead it was handled auto-
matically by the run-time environment using the 'garbage collector'. This
was part of the environment that monitored object references at run time
and would decide when to reclaim allocated memory on behalf of the
Added to all of these new ideas was the 'applet'. This probably had
the largest role in making Java a 1990s buzz word. Java applets are small
programs that can run inside a web browser. Code resides on a remote
server, is downloaded over the network and is executed locally inside a
'sandbox', restricting operations to those considered 'safe'. At the same
time, class file verification and a well-defined security model introduced
a new level of software security.
Java applets had limited use and were quickly outdated by the rise of
Flash as a browser-based, client-side technology but applets had served
a special role in the Java world. They demonstrated the power of this
new language called Java, raised awareness of the Internet and helped
create a strong worldwide Java developer base that today numbers over
As time went on, Java moved to have more of a focus on desktop
applications and then server applications: suddenly, everyone was talking