Java Language Basics
Java Syntax
Identifiers
Literals
Integer Literals
Floating-Point Literals
Boolean Literals
Character Literals
Escape Sequences
String Literals
Keywords
Statements
Code Blocks
Comments
Expressions
Operators
Arithmetic Operators
Logical Operators
Comparison Operators
Assignment Operators
Bitwise Operators
A Special Operator: the ?: Operator
Java's Data Types
Variables
Built-in Data Types
Numeric Data Types
Boolean Data Types
Character Data Types
Composite Data Types
Arrays
Creating and Initializing Arrays
Accessing Array Elements
Strings
Type Casting
Implicit Casting
Scope Rules
Flow Control Structures
The while Loop
The do Loop
The for Loop
Loop Control Statements
The break Statement
The continue Statement
Conditional Statements
The if-else Statement
The switch Statement
Summary
Object-Oriented Programming in Java
Introduction to OOP
Classes
Declaring and Instantiating Classes
Data Members
Class Methods
Constructors and Finalizers
Case Study: A Simple OOP Example
Class Inheritance
Using this and super
Access Modifiers
Access from within class's package
Access outside of a class's package
 Accessor Methods
Abstract Classes
Polymorphism
Method Overloading
Using Interfaces
Java Packages
The import Statement
Declaring Packages
Project Options Related to Packages
Summary
The Java Class Libraries
Introduction
The Language Package
The Object Class
Type Wrapper Classes
The Math Class
The String Class
The StringBuffer Class
The System Class
The Utilities Package
The Enumeration Interface
The Vector Class
The I/O Package
Input Stream Classes
Output Stream Classes
File Classes
The StreamTokenizer Class
The JBCL Packages
Controls
Dataset Components
I/O Components
Layout Components
Model and View Components
Utility Components
Java Generic Library (JGL)
Summary
Threading Techniques
Overview
Why Are Threads Useful?
Why Haven't I Heard of Threads Before?
Creating a Thread
Subclassing the Thread Class
Example: Implementing countingThread
Implementing the Runnable Interface
The Thread API
Constructors
The start() and stop() Methods
The suspend() and resume() Methods
The sleep() Method
The yield() Method
The join() Method
A Thread's Lifecycle
Making Your Code Thread-Safe
The synchronized Keyword
Monitors
Summary
Serialization
Overview
Why Serialize?
Serialization in JDK 1.1
The Serializable Interface
Using Output Streams
ObjectOutputStream Methods
Using Input Streams
ObjectInputStream Methods
Writing and Reading Object Streams
Summary
Java Virtual Machine Security
Overview
Why is the Java VM Necessary?
What Are the Main Roles of the JVM?
Java VM Security
The Security Model
The Java Verifier
The Security Manager
The class loader
Java's Safety as a Language
What About Just-In-Time Compilers?
Summary
Working with the Native Code Interface
Overview
Using the JNI
Using the native Keyword
Using the javah Tool
Summary