1
Chapter 1
Introduction To Computers,
Programs, and JAVA
Objectives
2
To understand computer basics, programs, and operating systems
(§§1.2–1.4).
To describe the relationship between Java and the World Wide Web
(§1.5).
To understand the meaning of Java language specification, API, JDK,
and IDE (§1.6).
To write a simple Java program (§1.7).
To display output on the console (§1.7).
To explain the basic syntax of a Java program (§1.7).
To create, compile, and run Java programs (§1.8).
To display output using the JOptionPane message dialog boxes (§1.9).
To become familiar with Java programming style and documentation
(§1.10).
To explain the differences between syntax errors, runtime errors, and
logic errors (§1.11).
What is a Computer?
3
A computer consists of a CPU, memory, hard disk,
floppy disk, monitor, printer, and communication
devices.
Bus
Storage Communication Input Output
Memory CPU Devices Devices Devices
Devices
e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,
and Tape and NIC Mouse Printer
CPU
4
• The central processing unit (CPU) is the brain of a computer.
• It retrieves instructions from memory and executes them.
• The CPU speed is measured in megahertz (MHz), with 1
megahertz equaling 1 million pulses per second.
• The speed of the CPU has been improved continuously.
Bus
Storage Communication Input Output
Memory CPU Devices Devices Devices
Devices
e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,
and Tape and NIC Mouse Printer
Memory
5
• Memory is to store data and program instructions for CPU to execute.
• A memory unit is an ordered sequence of bytes, each holds eight bits.
• A program and its data must be brought to memory before they can be
executed.
• A memory byte is never empty, but its initial content may be
meaningless to your program.
• The current content of a memory byte is lost whenever new
information is placed in it.
Bus
Storage Communication Input Output
Memory CPU Devices Devices Devices
Devices
e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,
and Tape and NIC Mouse Printer
How Data is Stored?
6
Data of various kinds, such as numbers,
characters, and strings, are encoded as a series
of bits (zeros and ones). Computers use zeros Memory address Memory content
and ones because digital devices have two
stable states, which are referred to as zero and . .
one by convention. The programmers need not . .
. .
to be concerned about the encoding and
2000 01001010 Encoding for character ‘J’
decoding of data, which is performed 2001 01100001 Encoding for character ‘a’
automatically by the system based on the 2002 01110110 Encoding for character ‘v’
encoding scheme. The encoding scheme 2003 01100001 Encoding for character ‘a’
varies. For example, character ‘J’ is 2004 00000011 Encoding for number 3
represented by 01001010 in one byte. A small
number such as three can be stored in a single
byte. If computer needs to store a large number
that cannot fit into a single byte, it uses a
number of adjacent bytes. No two data can
share or split a same byte. A byte is the
minimum storage unit.
Storage Devices
7
• Memory is volatile, because information is lost when the power is
off.
• Programs and data are permanently stored on storage devices
and are moved to memory when the computer actually uses them.
• There are three main types of storage devices: Disk drives (hard
disks and floppy disks), CD drives (CD-R and CD-RW), and
Tape drives.
Bus
Storage Communication Input Output
Memory CPU Devices Devices Devices
Devices
e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,
and Tape and NIC Mouse Printer
Output Devices: Monitor
8
• The monitor displays information (text and graphics).
• The resolution and dot pitch determine the quality of the display.
Bus
Storage Communication Input Output
Memory CPU Devices Devices Devices
Devices
e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,
and Tape and NIC Mouse Printer
Monitor Resolution and Dot Pitch
9
Resolution
The screen resolution specifies the number of pixels in horizontal
and vertical dimensions of the display device. Pixels (short for
“picture elements”) are tiny dots that form an image on the screen. A
common resolution for a 17-inch screen, for example, is 1,024 pixels
wide and 768 pixels high. The resolution can be set manually. The
higher the resolution, the sharper and clearer the image is.
Dot pitch
The dot pitch is the amount of space between pixels, measured in
millimeters. The smaller the dot pitch, the sharper the display.
Communication Devices
10
A regular modem uses a phone line and can transfer data in a speed up to
56,000 bps (bits per second). A DSL (digital subscriber line) also uses a
phone line and can transfer data in a speed 20 times faster than a regular
modem. A cable modem uses the TV cable line maintained by the cable
company. A cable modem is as fast as a DSL. Network interface card
(NIC) is a device to connect a computer to a local area network (LAN).
The LAN is commonly used in business, universities, and government
organizations. A typical type of NIC, called 10BaseT, can transfer data at
10 mbps (million bits per second).
Bus
Storage Communication Input Output
Memory CPU Devices Devices Devices
Devices
e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,
and Tape and NIC Mouse Printer
Programs
11
Computer programs, known as software, are instructions
to the computer.
You tell a computer what to do through programs.
Without programs, a computer is an empty machine.
Computers do not understand human languages, so you
need to use computer languages to communicate with
them.
Programs are written using programming languages.
Programming Languages
12
Machine Language Assembly Language High-Level Language
Machine language is a set of primitive instructions built
into every computer.
The instructions are in the form of binary code, so you
have to enter binary codes for various instructions.
Program with native machine language is a tedious
process. Moreover the programs are highly difficult to
read and modify. For example, to add two numbers, you
might write an instruction in binary like this:
1101101010011010
Programming Languages
13
Machine Language Assembly Language High-Level Language
Assembly languages were developed to make programming easy.
Since the computer cannot understand assembly language,
however, a program called assembler is used to convert assembly
language programs into machine code.
For example, to add two numbers, you might write an instruction
in assembly code like this: ADDF3 R1, R2, R3
Assembly Source File
Machine Code File
…
ADDF3 R1, R2, R3
Assembler …
1101101010011010
… …
Programming Languages
14
Machine Language Assembly Language High-Level Language
The high-level languages are English-like and easy to learn and
program.
For example, the following is a high-level language statement that
computes the area of a circle with radius 5:
area = 5 * 5 * 3.1415;
Popular High-Level Languages
15
Language Description
Ada Named for Ada Lovelace, who worked on mechanical general-purpose computers. The Ada
language was developed for the Department of Defense and is used mainly in defense projects.
BASIC Beginner’s All-purpose Symbolic Instruction Code. It was designed to be learned and used easily
by beginners.
C Developed at Bell Laboratories. C combines the power of an assembly language with the ease of
use and portability of a high-level language.
C++ C++ is an object-oriented language, based on C.
C# Pronounced “C Sharp.” It is a hybrid of Java and C++ and was developed by Microsoft.
COBOL COmmon Business Oriented Language. Used for business applications.
FORTRAN FORmula TRANslation. Popular for scientific and mathematical applications.
Java Developed by Sun Microsystems, now part of Oracle. It is widely used for developing platform-
independent Internet applications.
Pascal Named for Blaise Pascal, who pioneered calculating machines in the seventeenth century. It is a
simple, structured, general-purpose language primarily for teaching programming.
Python A simple general-purpose scripting language good for writing short programs.
Visual Visual Basic was developed by Microsoft and it enables the programmers to rapidly develop
Basic graphical user interfaces.
Interpreting/Compiling Source Code
16
A program written in a high-level language is called a
source program or source code.
Because a computer cannot understand a source
program, a source program must be translated into
machine code for execution.
The translation can be done using another programming
tool called an interpreter or a compiler.
Interpreting Source Code
17
An interpreter reads one statement from the source code,
translates it to the machine code or virtual machine code,
and then executes it right away, as shown in the
following figure.
Compiling Source Code
18
A compiler translates the entire source code into a
machine-code file, and the machine-code file is then
executed, as shown in the following figure.
Operating Systems
19
The operating system (OS) is a
program that manages and controls
a computer’s activities. User
The popular operating systems for
general-purpose computers are Application Programs
Microsoft Windows, Mac OS, and
Linux. Operating System
Application programs, such as a
Web browser or a word processor, Hardware
cannot run unless an operating
system is installed and running on
the computer.
Why Java?
20
The answer is that Java enables users to develop and deploy
applications on the Internet for servers, desktop computers,
and small hand-held devices.
The future of computing is being profoundly influenced by
the Internet, and Java promises to remain a big part of that
future.
• Java is a general purpose programming language.
• Java is the Internet programming language.
Java, Web, and Beyond
21
Java can be used to develop Web applications.
Java Applets
Java can also be used to develop applications for hand-
held devices such as Palm and cell phones
Examples of Java’s Versatility (Applets)
22
PDA and Cell Phone
23
Java’s History
24
Java was developed by a team led by James Gosling at Sun
Microsystems
In 1995, renamed Java, it was redesigned for developing Web
applications
HotJava
The first Java-enabled Web browser
Sun Microsystems was purchased by Oracle in 2010. Originally
called Oak
Early History Website:
http://www.java.com/en/javahistory/index.jsp
Characteristics of Java
25
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Characteristics of Java
26
Java Is Simple
Java is partially modeled on C++, but
Java Is Object-Oriented greatly simplified and improved.
Java Is Distributed Some people refer to Java as "C++--"
Java Is Interpreted because it is like C++ but with more
functionality and fewer negative
Java Is Robust
aspects.
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Characteristics of Java
27
Java Is Simple Java is inherently object-oriented.
Although many object-oriented
Java Is Object-Oriented languages began strictly as procedural
Java Is Distributed languages, Java was designed from the
Java Is Interpreted start to be object-oriented. Object-
oriented programming (OOP) is a
Java Is Robust popular programming approach that is
Java Is Secure replacing traditional procedural
Java Is Architecture-Neutral programming techniques.
Java Is Portable One of the central issues in software
Java's Performance development is how to reuse code.
Object-oriented programming provides
Java Is Multithreaded
great flexibility, modularity, clarity, and
Java Is Dynamic reusability through encapsulation,
inheritance, and polymorphism.
Characteristics of Java
28
Java Is Simple
Distributed computing involves
Java Is Object-Oriented several computers working together
Java Is Distributed on a network. Java is designed to
Java Is Interpreted make distributed computing easy.
Since networking capability is
Java Is Robust
inherently integrated into Java,
Java Is Secure writing network programs is like
Java Is Architecture-Neutral sending and receiving data to and
Java Is Portable from a file.
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Characteristics of Java
29
Java Is Simple
Java Is Object-Oriented You need an interpreter to run Java
Java Is Distributed programs. The programs are
compiled into the Java Virtual
Java Is Interpreted
Machine code called bytecode. The
Java Is Robust bytecode is machine-independent
Java Is Secure and can run on any machine that
Java Is Architecture-Neutral has a Java interpreter, which is part
of the Java Virtual Machine (JVM).
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Characteristics of Java
30
Java Is Simple • Java compilers can detect many
Java Is Object-Oriented problems that would first show
up at execution time in other
Java Is Distributed
languages.
Java Is Interpreted
Java Is Robust • Java has eliminated certain types
Java Is Secure of error-prone programming
constructs found in other
Java Is Architecture-Neutral
languages.
Java Is Portable
Java's Performance • Java has a runtime exception-
Java Is Multithreaded handling feature to provide
Java Is Dynamic programming support for
robustness.
Characteristics of Java
31
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java implements several security
Java Is Interpreted mechanisms to protect your system
Java Is Robust against harm caused by stray
Java Is Secure programs.
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Characteristics of Java
32
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust Write once, run anywhere
Java Is Secure
With a Java Virtual Machine
Java Is Architecture-Neutral (JVM), you can write one program
Java Is Portable that will run on any platform.
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Characteristics of Java
33
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure Because Java is architecture
Java Is Architecture-Neutral neutral, Java programs are portable.
Java Is Portable They can be run on any platform
Java's Performance without being recompiled.
Java Is Multithreaded
Java Is Dynamic
Characteristics of Java
34
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable Java’s performance Because Java is
architecture neutral, Java programs
Java's Performance are portable. They can be run on
Java Is Multithreaded any platform without being
Java Is Dynamic recompiled.
Characteristics of Java
35
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable Multithread programming is smoothly
integrated in Java, whereas in other
Java's Performance
languages you have to call procedures
Java Is Multithreaded specific to the operating system to
Java Is Dynamic enable multithreading.
Characteristics of Java
36
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure Java was designed to adapt to an
Java Is Architecture-Neutral evolving environment. New code can
be loaded on the fly without
Java Is Portable recompilation. There is no need for
Java's Performance developers to create, and for users to
Java Is Multithreaded install, major new software versions.
Java Is Dynamic New features can be incorporated
transparently as needed.
Terminology
37
The application program interface (API), also known as
library, contains predefined classes and interfaces for
developing Java programs.
Java Development Toolkit (JDK) is a bunch of compiled
components that aid you in developing Java programs. a JDK
contains the functions, objects, and other components (such as
virtual machines to run your app) for you to use in order to
develop your own software.
Instead of using the JDK, Integrated Development Environment
(IDE) can be used for developing Java programs quickly.
Editing, compiling, building, debugging, and online help are
integrated in one graphical user interface
(e.g., NetBeans, Eclipse, and TextPad)
JDK Editions
38
Java Standard Edition (J2SE)
J2SE can be used to develop client-side standalone applications
or applets.
Java Enterprise Edition (J2EE)
J2EE can be used to develop server-side applications such as
Java servlets, Java ServerPages, and Java ServerFaces.
Java Micro Edition (J2ME).
J2ME can be used to develop applications for mobile devices
such as cell phones.
This book uses J2SE to introduce Java programming.
JDK Versions
39
There are many versions of Java SE. The latest, Java SE 11.
Oracle releases each version with a (JDK). For Java SE 11, the
Java Development Toolkit is called JDK 11 (also known as
Java 11 or JDK 11).
Examples:
JDK 1.02 (1995)
JDK 1.1 (1996)
JDK 1.2 (1998)
JDK 1.3 (2000)
JDK 1.4 (2002)
JDK 1.5 (2004) a. k. a. JDK 5 or Java 5
JDK 1.6 (2006) a. k. a. JDK 6 or Java 6
JDK 1.7 (2011) a. k. a. JDK 7 or Java 7
Popular Java IDEs
40
NetBeans
Eclipse
A Simple Java Program
41
The Saving of Java Program
42
Note
The source file must end with the extension .java and must
have the same exact name as the public class name.
For example, the file for the source code in Listing 1.1 should be
named Welcome.java, since the public class name is Welcome.
Creating, Compiling, and Running Programs
43
Compiling Java Source Code
44
You can port a source program to any machine with appropriate
compilers.
Nowadays computers are networked to work together. Java was
designed to run object programs on any platform.
With Java, you write the program once, and compile the source
program into a special type of object code, known as bytecode.
The bytecode can then run on any computer with a Java Virtual
Machine, as shown below.
Java Virtual Machine is a software that interprets Java bytecode.
Compiling Java Source Code
45
the compiler generates a bytecode file with a .class extension. Thus,
the preceding command generates a file named Welcome.class
animation
Trace a Program Execution
46
Enter main method
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
animation
Trace a Program Execution
47
Execute statement
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
animation
Trace a Program Execution
48
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
print a message to the
console
A Simple Java Program
49
Anatomy of a Java Program
50
Class name
Main method
Statements
Statement terminator
Reserved words
Comments
Blocks
Class Name
51
Every Java program must have at least one class.
Each class has a name.
By convention, class names start with an uppercase letter.
In this example, the class name is Welcome.
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
Main Method
52
Line 2 defines the main method. In order to run a class, the class
must contain a method named main.
The program is executed from the main method.
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
Statement
53
A statement represents an action or a sequence of actions.
The statement System.out.println ("Welcome to Java!") in the
program in Listing 1.1 is a statement to display the greeting
"Welcome to Java!“.
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
Statement Terminator
54
Every statement in Java ends with a semicolon (;).
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
Reserved words
55
Reserved words or keywords are words that have a specific
meaning to the compiler and cannot be used for other purposes
in the program.
For example, when the compiler sees the word class, it understands
that the word after class is the name for the class.
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
Blocks
56
• A pair of braces in a program forms a block that groups
components of a program.
Caution
• Java source programs are case sensitive. It would be wrong, for
example, to replace main in the program with Main.
Special Symbols
57
{ …}
58
// This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
( … )
59
// This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
;
60
// This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
// …
61
// This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
"…"
62
// This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
Displaying Text in a Message Dialog Box
63
You can rewrite the program in Listing 1.1 to display
the text in a message dialog box
you can use the showMessageDialog method in the
JOptionPane class.
JOptionPane is one of the many predefined classes in
the Java system, which can be reused rather than
“reinventing the wheel.”
Displaying Text in a Message Dialog Box
64
Note:
If you replace JOptionPane in line 9 with javax.swing.JOptionPane, you
don’t need to import it in line 4. javax.swing.JOptionPane is the full name for
the JOptionPane class.
Notes:
65
There are two types of import statements: specific import and
wildcard import.
1. The specific import specifies a single class in the import statement.
For example, the following statement imports JOptionPane from
the package javax.swing.
import javax.swing.JOptionPane;
2. The wildcard import imports all the classes in a package
javax.swing by using:
import javax.swing.*;
The information for the classes in an imported package is not read in
at compile time or runtime unless the class is used in the program.
The showMessageDialog Method
66
JOptionPane.showMessageDialog(null,
"Welcome to Java!",
"Display Message",
JOptionPane.INFORMATION_MESSAGE);
Two Ways to Invoke the Method
67
There are several ways to use the showMessageDialog method.
For the time being, all you need to know are two ways to invoke
it.
1. One is to use a statement as shown in the example:
JOptionPane.showMessageDialog(null, x, y,
JOptionPane.INFORMATION_MESSAGE);
where x is a string for the text to be displayed, and y is a string for
the title of the message dialog box.
2. The other is to use a statement like this:
JOptionPane.showMessageDialog(null, x);
where x is a string for the text to be displayed.
Programming Style and Documentation
68
Appropriate Comments
Naming Conventions
Proper Indentation and Spacing Lines
Block Styles
Appropriate Comments
69
Include a summary at the beginning of the program to
explain what the program does, its key features, its
supporting data structures, and any unique techniques it
uses.
Include your name, class section, instructor, date, and a
brief description at the beginning of the program.
In addition to line comments (beginning with //) and
block comments (beginning with /*),
Naming Conventions
70
Choose meaningful and descriptive names.
Class names:
Capitalize the first letter of each word in the name.
For example, the class name
ComputeExpression.
Proper Indentation and Spacing
71
Indentation
Indent two spaces.
Spacing
Use blank line to separate segments of the code.
Block Styles
72
Use end-of-line style for braces.
Programming Errors
73
Syntax Errors
Detected by the compiler
Runtime Errors
Causes the program to abort
Logic Errors
Produces incorrect result
Syntax Errors
74
public class ShowSyntaxErrors {
public static main(String[] args) {
System.out.println("Welcome to Java);
}
}
Runtime Errors
75
public class ShowRuntimeErrors {
public static void main(String[] args) {
System.out.println(1 / 0);
}
}
Logic Errors
76
public class ShowLogicErrors {
public static void main(String[] args) {
System.out.println("Celsius 35 is
Fahrenheit degree ");
System.out.println((9 / 5) * 35 + 32);
}
}