Clicking one one of the buttons will make your browser jump to the appropriate section of the table of contents below. Note the use of the status line.

Java in a Nutshell: Table of Contents



How to Use This Book   xi

Preface   xvii





Part I:  Introducing Java:



Section 1: Getting Started with Java   3

 Why Java? 4

 What Is Java? 4

 A Simple Example 10



Section 2: How Java Differs from C   15

 Program Structure and Environment 15

 The Name Space: Packages, Classes, and Fields 17

 Comments 21

 No Preprocessor 21

 Unicode and Character Escapes 23

 Primitive Data Types 24

 Reference Data Types 25

 Objects 28

 Arrays 29

 Strings 33

 Operators 33

 Statements 35

 Exceptions and Exception Handling 39

 Miscellaneous Differences 45



Section 3: Classes and Objects in Java   49

 Introduction to Classes and Objects 50

 Object Creation 52

 Class Variables 54

 Class Methods 56

 Object Destruction 60

 Subclasses and Inheritance 62

 Overriding Methods 68

 Data Hiding and Encapsulation 71

 Abstract Classes and Interfaces 75

 C++ Features Not Found in Java 80

 Section Summary 80





Part II:  Programming with the Java API



Section 4: Applets   85

 A First Applet 85

 Drawing Graphics 86

 Handling Events 88

 Events in Detail 89

 Reading Applet Parameters 92

 Adding a Button 93

 An Imagemap 95

 Animation 98

 Sound 100

 Standalone Applets 101



Section 5: Graphical User Interfaces   103

 An Information Dialog 103

 A Dialog with User Response 106

 All Java GUI Components 108

 Handling GUI Events 114

 Working with Scrollbars 117

 Defining a Custom Component 120



Section 6: Input and Output   125

 Reading and Displaying Files 125

 Getting Directory and File Information 127

 Copying a File 131

 Filtering Input 133

 Pipes 135



Section 7: Networking   141

 Downloading the Contents of a URL 141

 Using a URLConnection 142

 Sending and Receiving Datagrams 143

 Implementing a Server 145

 Implementing a Client 147

 An Applet Client 149



Section 8: Advanced Graphics and Images  151

 Smooth Animation 151

 Keeping Track of Images 155

 Filtering Images 157



Section 9: Advanced Threads   161

 Threads and Thread Groups 161

 synchronized, wait(), and notify() 164

 A Multithreaded Client 169





Part III:  Java Language Reference 



Section 10: Java Syntax   175

 Primitive Data Types 175

 Character Escape Sequences 176

 Operators 176

 Modifiers 179

 Reserved Words 181

 Java Documentation Comment Syntax 181



Section 11: Events   183

 Event Types 183

 Key and Modifier Constants 185

 Mouse Buttons 186



Section 12: Fonts, Colors, and Cursors   187

 Fonts 187

 Colors 189

 Cursors 190



Section 13: System Properties and Applet Parameters  193

 Standard System Properties 193

 Other Important Properties 194

 Specifying Property Values 195

 Applet Parameters 195



Section 14: Applet Security   197

 Applet Security Restrictions 197

 Loading Classes Securely 199

 Denial of Service Attacks 199

 Future Directions: Applet Certification 200



Section 15: Java-Related HTML and HTTP Syntax  201

 The <APPLET> Tag 201

 The <EMBED> Tag 203

 Java-Related HTTP 203



Section 16: The Unicode Standard   205



The UTF-8 Encoding 208



Section 17: JDK Development Tools   211

 appletviewer -- The Java Applet Viewer 211

 java -- The Java Interpreter 214

 javac -- The Java Compiler 218

 javadoc -- The Java Documentation Generator 220

 javah -- Native Method C File Generator 222

 javap -- The Java Class Disassembler 224

 jdb -- The Java Debugger 226





Part IV:  API Quick Reference 



Section 18 -- The java.applet Package   233

Section 19 -- The java.awt Package   237

Section 20 -- The java.awt.image Package   271

Section 21 -- The java.awt.peer Package   281

Section 22 -- The java.io Package   289

Section 23 -- The java.lang Package   309

Section 24 -- The java.net Package   329

Section 25 -- The java.util Package   339

Section 26 -- Java Errors and Exceptions   349





Part V:  API Cross References 



Section 27 -- Class Defined-In Index   367

Section 28 -- Method Defined-In Index   371

Section 29 -- Subclass Index   381

Section 30 -- Implemented-By Index   383

Section 31 -- Returned-By Index   385

Section 32 -- Passed-To Index   389

Section 33 -- Thrown-By Index   395



Glossary   399

Index   421