Look at this quick introduction to Java technology to get the ball rolling to better understanding of the technology. You will learn what Java is and its features, and you will begin comprehensive examples of code.

This chapter is from the book

This chapter gives a quick introduction to the Javatm technology.
First, we explain what the Java platform is and what it can do. Next are step-by-step
instructions on how to compile and run two simple programs on the Win32, the
UNIX/Linux or the MacOS platforms.1
After that, we take a look at the code for the two programs, so you can see
how they work. The chapter ends with questions and exercises to test and expand
your knowledge, followed by a table of download instructions for the code used
in this chapter.

The software development kits (SDKs) that Sun Microsystems provides include a
minimal set of tools to let you run and compile your programs. Serious
developers are advised to use a professional Integrated Development Environment
(IDE).2 See Integrated Development
Environments (page 540) for a list of IDEs.

About the Java Technology

Talk about Java technology seems to be everywhere, but what exactly is it?
The next two sections explain how it is both a programming language and a
platform.

The Java Programming Language

The Java programming language is a high-level language that can be
characterized by all the following
buzzwords:3

Simple

Object oriented

Distributed

Interpreted

Robust

Secure

Architecture neutral

Portable

High performance

Multithreaded

Dynamic

With most programming languages, you either compile or interpret a program so
that you can run it on your computer. The Java programming language is unusual
in that a program is both compiled and interpreted. With the compiler, first you
translate a program into an intermediate language called Java
bytecodesthe platform-independent codes interpreted by the interpreter
on the Java platform. The interpreter parses and runs each Java bytecode
instruction on the computer. Compilation happens just once; interpretation
occurs each time the program is executed. Figure 1 illustrates how this
works.

Figure
1 Programs written in the Java programming language are first compiled and
then interpreted.

You can think of Java bytecodes as the machine code instructions for the
Java Virtual Machine (Java VM). Every Java interpreter, whether it's
a development tool or a Web browser that can run applets, is an implementation
of the Java VM.

Java bytecodes help make "write once, run anywhere" possible. You
can compile your program into bytecodes on any platform that has a Java
compiler. The bytecodes can then be run on any implementation of the Java VM.
That means that as long as a computer has a Java VM, the same program written in
the Java programming language can run on Windows 2000, a Solaris workstation, or
on an iMac, as shown in Figure 2.

The Java Platform

A platform is the hardware or software environment in which a program
runs. We've already mentioned some of the most popular platforms, such as
Windows 2000, Linux, Solaris, and MacOS. Most platforms can be described as a
combination of the operating system and hardware. The Java platform differs from
most other platforms in that it's a software-only platform that runs on top
of other, hardware-based platforms.

The Java platform has two components:

The Java Virtual Machine (Java VM)

The Java Application Programming Interface (Java API)

You've already been introduced to the Java VM. It's the base for
the Java platform and is ported onto various hardware-based platforms.

The Java API is a large collection of ready-made software components that
provide many useful capabilities, such as graphical user interface (GUI)
widgets. The Java API is grouped into libraries of related classes and
interfaces; these libraries are known as packages. The next section
highlights what functionality some of the packages in the Java API provide.

Figure 3 depicts a program that's running on the Java platform. As the
figure shows, the Java API and the virtual machine insulate the program from the
hardware.

Figure
3 The Java API and the Java VM insulate the program from hardware
dependencies.

Native code is code that, after you compile it, runs on a specific hardware
platform. As a platform-independent environment, the Java platform can be a bit
slower than native code. However, smart compilers, well-tuned interpreters, and
just-in-time bytecode compilers can bring performance close to that of native
code without threatening portability.

What Can Java Technology Do?

The most common types of programs written in the Java programming language
are applets and applications. If you've surfed the Web, you're
probably already familiar with applets. An applet is a program that adheres to
certain conventions that allow it to run within a Java-enabled browser. To see a
running applet, go to this page in the online version of this tutorial:

There you can see an animation of the Java platform's mascot, Duke,
waving at you:

However, the Java programming language is not just for writing cute,
entertaining applets for the Web. The general-purpose, high-level Java
programming language is also a powerful software platform. Using the generous
API, you can write many types of programs.

An application is a standalone program that runs directly on the Java
platform. A special kind of application known as a server serves and
supports clients on a network. Examples of servers are Web servers, mail
servers, and print servers.

Another specialized program is a servlet. A servlet can almost be
thought of as an applet that runs on the server side. Java servlets are a
popular choice for building interactive Web applications, replacing the use of
CGI scripts. Servlets are similar to applets in that they are run-time
extensions of applications. Instead of working in browsers, though, servlets run
within Java Web servers, configuring or tailoring the server.

How does the API support all these kinds of programs? It does so with
packages of software components that provide a wide range of functionality.
Every full implementation of the Java platform gives you the following
features:

The essentials: Objects, strings, threads, numbers, input and output,
data structures, system properties, date and time, and so on.

The Java platform also has APIs for 2D and 3D graphics, accessibility,
servers, collaboration, telephony, speech, animation, and more. Figure 4
depicts what is included in the Java 2 SDK.

Figure
4 The Java 2 SDK, Standard Edition v. 1.3. The Java 2 Runtime Environment
(JRE) consists of the Java VM, the Java platform core classes, and supporting
files. The Java 2 SDK includes the JRE and development tools, such as compilers
and debuggers.

This book covers the Java programming language and parts of the core API that
beginning- to intermediate-level programmers will use most frequently. If you
need additional information not found in this book, you can explore the other
two books in The Java Tutorial series: The JFC Swing Tutorial and
The Java Tutorial Continued. The contents of both books are included on
the CD that accompanies this book and can be found in the online tutorial: