Java Language Reference

Previous Chapter 1 Next
 

1. Introduction

Contents:
A "Hello World" Program
New Language Features in Java 1.1
Compiling a Java Source File
Running a Java Application
Notational Conventions

Java is a relatively new programming language. However, many of the features that make up the language are not new at all. Java's designers borrowed features from a variety of older languages, such as Smalltalk and Lisp, in order to achieve their design goals.

Java is designed to be both robust and secure, so that it can be used to write small, hosted programs, or applets, that can be run safely by hosting programs such as Web browsers and cellular phones. Java also needs to be portable, so that these programs can run on many different kinds of systems. What follows is a list of the important features that Java's designers included to create a robust, secure, and portable language.

As you can see, Java has quite a list of interesting features. If you are a C/C++ programmer, many of the constructs of the Java language that are covered in this book should look familiar to you. Just be warned that you shouldn't take all of these constructs at face value, since many of them are different in Java than they are in C/C++.

1.1 A "Hello World" Program

Before diving into the various constructs provided by the Java language, you should have at least a general understanding of the Java programming environment. In the fine tradition of all language reference manuals, here is a short Java program that outputs "Hello world!" and then exits:

/*
 * Sample program to print "Hello World"
 */
class HelloWorld {             // Declare class HelloWorld
    public static void main(String argv[]) {
        System.out.println("Hello World!");
    }
}

This example begins with a comment that starts with /* and ends with */. This type of comment is called a C-style comment. The example also uses another kind of comment that begins with // and ends at the end of the line. This kind of comment is called a single-line comment; it is identical to that style of comment in C++. Java supports a third type of comment, called a documentation comment, that provides for the extraction of comment text into a machine-generated document.

Comments aside, the example consists of a single class declaration for the class called HelloWorld. If you are unfamiliar with classes, you can think of a class as a collection of variables and pieces of executable code called methods for the purposes of this discussion. In Java, most executable code is part of a method. Methods are identical to virtual member functions in C++, except that they can exist only as part of a class. Methods are also similar to functions, procedures, and subroutines in other programming languages.

The HelloWorld class contains a single method named main(). When you ask the Java interpreter to run a Java program, you tell it what code to run by giving it the name of a class. The Java interpreter then loads the class and searches it for a method named main() that has the same attributes and parameters as shown in the example. The interpreter then calls that main() method.

In the declaration of main(), the name main is preceded by the three keywords: public, static, and void. The public modifier makes the main() method accessible from any class. The static modifier, when applied to a method, means that the method can be called independently of an instance of a class. The void keyword means that the method returns no value. The main() method of an application should always be declared with these three keywords. Although the meanings of these keywords is similar to their meanings in C++, there are some differences in the meaning of the keyword static as used in Java and C++.

The main() method contains a single line of executable code that calls the println() method of the object System.out. Passing the argument "Hello World!" to the println() method results in "Hello World!" being output. System.out is an object that encapsulates an application's standard output. It is similar in purpose to stdout in C and cout in C++. Java also has System.in and System.err objects that are similar in purpose to stdin and stderr in C and cin and cerr in C++, respectively.


Previous Home Next
Acknowledgments Book Index New Language Features in Java 1.1

Java in a Nutshell Java Language Reference Java AWT Java Fundamental Classes Exploring Java