throbber
Daw‘a’ Flanagan
`
`IN A NUTSHELL
`
`A Des/atop Quick Reference
`
`Page 1 of 238
`
`GOOGLE EXHIBIT 1031
`
`

`

`O’REILLY"
`
`Z > E H C
`
`JAVA 2/1.2 & 1.3
`
`i—i
`
`A E n
`
`1
`L—‘
`H
`
`FLANAGAN
`
`Page 2 of 238
`
`

`

`IN A NUTSHEL
`
`JAVM
`
`A Desktop Quick Reference
`
`Page 3 of 238
`
`

`

`Exploring Java”
`
`Java“ Threads
`
`Java“ Network Programming
`
`Javam Virtual Machine
`
`Java” AWT Reference
`
`Java” Language Reference
`
`Java“ Fundamental Classes Reference
`
`THE
`JAVA”
`SERIES
`
`Searchable Resource on CD-ROM
`
`Database Programming with
`JDBC'” and Javam
`
`Javaw Distributed Computing
`
`Developing Java Beans’"
`
`Java” Security
`
`Java“ Cryptography
`
`Java” Swing
`
`Java“ Servlet Programming
`
`Java” I/O
`
`Java'” 2D Graphics
`
`Enterprise JavaBeans’“
`
`Also from O’Reilly
`Java“ in a Nutshell
`
`Java” in a Nutshell, Deluxe Edition
`
`Java'" Examples in a Nutshell
`
`Java” Enterprise in a Nutshell
`
`Java” Foundation Classes in a Nutshell
`
`Java'" Power Reference: A Complete
`
`Page 4 of 238
`
`

`

`IN A NUTSHELL
`
`A Des/atop Quick Reference
`
`JAAW
`
`Beijing ‘ Cambridge ' Fambam - Kb'ln - Paris - Sebastopol - Taipei ' Tokyo
`
`Third Edition
`
`David Flanagan
`
`O’REILLY®
`
`Page 5 of 238
`
`

`

`Javam in a Nutshell, Third Edition
`by David Flanagan
`
`Copyright © 1999, 1997, 1996 O’Reilly 8; Associates, Inc. All rights reserved.
`Printed in the United States of America
`
`Published by O’Reilly 8: Associates, Inc., 101 Morris Street, Sebastopol, CA 95472.
`
`[M]
`
`Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are
`registered trademarks and The JavaTM Series is a trademark of O’Reilly 8: Associates,
`Inc. The association of the image of aJavan tiger with the topic ofJava is a trademark
`of O’Reilly & Associates, Inc. Java and all Java—based trademarks and logos are
`trademarks or registered trademarks of Sun Microsystems, Inc, in the United States
`and other countries. O’Reilly 8; Associates, Inc. is independent of Sun Microsystems.
`
`Editor: Paula Ferguson
`
`Production Editor: Mary Anne Weeks Mayo
`
`Printing History:
`
`February 1996:
`
`First Edition.
`
`Second Edition.
`May 1997:
`November 1999: Third Edition.
`
`Many of the designations used by manufacturers and sellers to distinguish their
`products are claimed as trademarks. Where those designations appear in this book,
`and O’Reilly 8: Associates, Inc. was aware of a trademark claim, the designations
`have been printed in caps or initial caps.
`
`While every precaution has been taken in the preparation of this book, the publisher
`assumes no responsibility for errors or omissions, or for damages resulting from the
`use of the information contained herein.
`
`ISBN: 1—56592—487-8
`
`Page 6 of 238
`
`

`

`Table of Contents
`
`Preface ................................................................................................ .. xi
`
`
`Part 1: Introducingjava
`
`Differences Between C and Java ....................................................... .. 80
`
`Classes and Objects ............................................................................ .. 61
`Array Types ......................................................................................... .. 64
`Reference Types ................................................................................. .. 70
`Packages and the Java Namespace .................................................... .. 76
`Java File Structure ............................................................................... .. 78
`Defining and Running Java Programs ............................................... .. 79
`
`Chapter 1 —Introduction ............................................................... .. 3
`What Is Java? ......................................................................................... .. 3
`Key Benefits of Java ............................................................................. .. 6
`An Example Program ........................................................................... .. 9
`
`Chapter 2—]ava Syntaxfrom the Ground Up ....................... .. 19
`The Unicode Character Set ................................................................. .. 20
`Comments .......................................................................................... .. 20
`Identifiers and Reserved Words ......................................................... .. 21
`
`Primitive Data Types .......................................................................... .. 22
`Expressions and Operators ................................................................ .. 29
`Statements ........................................................................................... .. 43
`Methods ............................................................................................... .. 59
`
`Page 7 of 238
`
`

`

`Chapter 3—- Object—Om’ertted Programming injava ............. .. 82
`The Members of a Class ..................................................................... .. 82
`
`Member Classes ................................................................................ .. 119
`Local Classes ..................................................................................... .. 124
`
`Anonymous Classes .......................................................................... .. 127
`How Inner Classes Work .................................................................. .. 130
`Modifier Summary ............................................................................. .. 132
`C++ Features Not Found in Java ...................................................... .. 135
`
`Chapter 4— Tbejava Platform ................................................ .. 136
`
`Java Platform Overview .................................................................... .. 136
`Strings and Characters ...................................................................... .. 138
`Numbers and Math ........................................................................... .. 140
`Dates and Times ............................................................................... .. 143
`Arrays ................................................................................................. .. 144
`Collections ......................................................................................... .. 145
`
`Types, Reflection, and Dynamic Loading ........................................ .. 147
`Threads .............................................................................................. .. 149
`Files and Directories ......................................................................... .. 155
`Input and Output Streams ................................................................ .. 154
`Networking ........................................................................................ .. 158
`Processes ........................................................................................... .. 161
`
`Security .............................................................................................. .. 161
`Cryptography .................................................................................... .. 163
`
`Creating and Initializing Objects ........................................................ .. 88
`Destroying and Finalizing Objects ..................................................... .. 92
`Subclasses and Inheritance ................................................................ .. 95
`Data Hiding and Encapsulation ....................................................... .. 104
`Abstract Classes and Methods .......................................................... .. 110
`Interfaces ........................................................................................... .. 112
`Inner Class Overview
`.................................................................. .. 117
`Static Member Classes ....................................................................... .. 118
`
`
`
`Chapter 5—java Security .......................................................... .. 166
`
`Security Risks .................................................................................... .. 166
`Java VM Security and Class File Verification ................................... .. 167
`Authentication and Cryptography .................................................... .. 168
`Access Control
`.................................................................................. .. 168
`
`Security for Everyone ....................................................................... .. 171
`Permission Classes ............................................................................ .. 175
`
`Page 8 of 238
`
`

`

`Chapter 6—favaBeans ............................................................... .. 1 78
`Bean Basics ....................................................................................... .. 179
`JavaBeans Conventions .................................................................... .. 181
`Bean Contexts and Services ............................................................. .. 187
`
`Chapter 7—java Programming and Documentation '
`Conventions ............................................................................ .. 189
`
`Naming and Capitalization Conventions ......................................... .. 189
`Portability Conventions and Pure Java Rules .................................. .. 190
`Java Documentation Cements ....................................................... .. 192
`
`Chapter 8—fava Development Tools ...................................... .. 200
`
`policytool ........................................................................................... ., 235
`serialver ................................................................................ it ........... .. 256
`
`appletviewer ...................................................................................... .. 200
`extcheck ............................................................................................ .. 204 ‘
`jar ....................................................................................................... .. 204
`jarsigner ............................................................................................. .. 206
`java ..................................................................................................... .. 208
`javac .................................................................................... .l ............. .. 214
`javadoc .............................................................................................. .. 217
`javah .................................................................................................. .. 221
`javakey ............................................................................................... .. 225
`javap ................................................................................................. ., 225
`jdb ...................................................................................................... .. 227
`keytool ............................................................................................... .. 231
`nativeZascii ........................................................................................ .. 234
`
`(
`
`Part II: API Quick Reference
`
`How To Use This Quick Reference ............................................ .. 239
`
`Chapter 9# The java. beans Package ..................................... .. 248
`
`Chapter 1 0— The java. beans. heancontext Package ........... .. 264
`
`Page 9 of 238
`
`

`

`Chapter 1 1— The java. z‘o Package .......................................... .. 280
`
`Chapter 12— The javalartg Package ..................................... .. 328
`
`Chapter 14— The javalangreflect Package ......................... .. 381
`
`Chapter 15— The java. math Package .................................... .. 391
`
`Chapter 1 6— The java. net Package ........................................ .. 395
`
`Chapter 13— The javalangrefPackage ............................... .. 3 77
`
`
`
`Chapter 1 7— The javasecartty Package ............................... .. 418
`
`Chapter 18— The javasecarttyacl Package ........................ .. 453
`
`Chapter 19— The javasecart'tycert Package ....................... .t 45 7
`
`Chapter 20—— The java.secarz’ty.tnterfaces Package ............ .. 466
`
`Chapter 21 — The javasecarttyspec Package ...................... .. 4 70
`
`Chapter 22—— The javatext Package ....................................... .. 4 76
`
`Chapter 23— The javaattl Package ....................................... .. 49 7
`
`Chapter 24— The javaatt‘l.jar Package ................................. .. 544
`
`Chapter 25— Thejavaatt'lzzp Package ................................ .. 550
`
`Chapter 26—— Thejavax. crypto Package ................................ .. 561
`
`Chapter 2 7— The jar/ax. crypto. interfaces Package ............ .. 5 76
`
`Page 10 of 238
`
`

`

`Chapter 29—— Class, Method, and Field Index ...................... .. 584
`
`Index ............................................................................................... .. 615
`
`Chapter 28— Thejavax. cryptospec Package ....................... .. 5 78
`
`
`
`Page 11 of 238
`
`

`

`Preface
`
`This book is a desktop quick reference for JavaTM programmers, designed to sit
`faithfully by your keyboard while you program. Part I of the book is a fast~paced,
`“no-fluff” introduction to the Java programming language and the core APIs of the
`Java platform. Part II is a quick-reference section that succinctly details every class
`and interface of those core APIs. The book covers Versions 1.0, 1.1, 1.2, and 1.3
`beta of Java.
`
`learn Java programming from this book. These introductory chapters are written in
`
`Changes Since the Second Edition
`Readers who are familiar with the second edition of this book will notice a num-
`ber of changes in this edition. Most notably,
`the AWT and applet APIs are no
`longer documented in this book. The Java platform tripled in size between Java
`1.1 and Java 1.2. Accordingly, and unavoidably, jam in a Nutshell has been split
`into three volumes. The volume you are now reading documents only the essen-
`tial APIs of the platform, including the basic language and utility classes, as well as
`classes for input/output, networking, and security. See the Table of Contents for a
`complete list of the packages documented here.
`
`If you are a client—side programmer who is working with graphics or graphical
`user interfaces, you will probably want to supplement this book with jam Foun—
`dation Classes in a Nutshell, which documents all the graphics- and GUI—related
`classes, including the AWT, Swing, Java 2D, and applet APIs. And, if you are an
`server-side or enterprise programmer, you will likely be interested in Java Enter-
`prise in a Nutshell.
`
`Another big change is that Part I of this book has been almost entirely rewritten.
`The first and second editions of this book assumed knowledge of and experience
`with C or C++. Now that Java has come thoroughly into its own, that assumption
`no longer seems appropriate, so I have rewritten and expanded Chapters 2 and 3
`to explain Java without any reference to C, C++, or any other programming lan—
`guage. Programmers with a modest amount of experience should now be able to
`
`Page 12 of 238
`
`

`

`a tight, concise style, so programmers who already know Java should find them
`useful as a language reference.
`
`Another new feature of Part I is Chapter 4, The java Platform. This chapter is an
`introduction to the APIs documented in the reference section of the book.
`It
`
`includes more than 60 detailed API usage examples that show how to accomplish
`common tasks with the predefined classes of the Java platform.
`
`Finally, the quick—reference seCtion in Part II of the book has a new look that dra—
`matically improves the readability of the reference material and packs even more
`API information into a small space. Even if you are already familiar with the sec-
`ond edition, you should take the time to read the How To Use This Quick Reference
`section at the beginning of Part II; it explains the new quick-reference format and
`shows you how to get the most out of it.
`
`Contents of This Boole
`
`The first eight chapters of this book document the Java language, the Java plat—
`form, and the Java development tools that are supplied with Sun’s Java SDK (soft—
`ware development kit):
`
`Chapter 1: Introduction
`This chapter is an overview of the Java language and the Java platform that
`explains the important features and benefits of Java.
`It concludes with an
`example Java program and walks the new Java programmer through it line by
`line.
`
`xii Preface
`
`Chapter 2: java Syntax From the Ground Up
`This chapter explains the details of the Java programming language. It is a
`long and detailed chapter. Experienced Java programmers can use it as 3 lan-
`guage reference. Programmers with substantial experience with languages
`such as C and C++ should be able to pick up Java syntax by reading this
`chapter. The chapter does not assume years of programming experience, or
`even familiarity, with C or C++, however. Even beginning programmers, with
`only modest experience, should be able to learn Java programming by study-
`ing this chapter carefully.
`
`Chapter 3; Object-Oriented Programming infava
`This chapter describes how the basic Java syntax documented in Chapter 2 is
`used to write object-oriented programs in Java. The chapter assumes no prior
`experience with 00 programming. It can be used as a tutorial by new pro—
`grammers or as a reference by experienced Java programmers.
`
`Chapter 4: Thejava Platform
`This chapter is an overview of the essential Java APIs covered in this book, It
`contains numerous short examples that demonstrate how to perform common
`tasks with the classes and interfaces that comprise the Java platform. Program-
`mers who are new to Java, and especially those who learn best by example,
`should find this a valuable chapter.
`
`
`
`Page 13 of 238
`
`

`

`Chapter 5: java Security
`This chapter explains the Java security architecture that allows untrusted code
`to run in a secure environment from which it cannot do any malicious dam—
`age to the host system. It is important for all Java programmers to have at
`least a passing familiarity with Java security mechanisms.
`
`Chapter 6.- javaBeans
`This chapter documents the JavaBeansTM component framework and explains
`what programmers need to know to create and use the reusable, embeddable
`Java classes known as beans.
`
`Chapter 7: java Programming and Documentation Conventions
`This chapter documents important and widely adopted Java programming
`conventions and also explains how you can make your Java code self—docu—
`menting by including specially formatted documentation cements.
`
`Chapter 8: java Development Tools
`The Java SDK shipped by Sun includes a number of useful Java development
`tools, most notably the Java interpreter and the Java compiler. This chapter
`documents those tools.
`
`These first eight chapters teach you the Java language and get you up and running
`with the Java APIs. The bulk of the book, however, is the API quick reference,
`Chapters 9 through 29, which is a succinct but detailed API reference formatted for
`optimum ease of use. Please be sure to read the How To Use This Quick Reference
`section, which appears at the beginning of the reference section; it explains how
`to get the most out of this section.
`
`Related Books
`O’Reilly & Associates, Inc. publishes an entire series of books on Java program-
`ming. These books include java Foundation Classes in a Nutshell and java Enter-
`prise in a Nutshell, which, as mentioned earlier, are companions to this book.
`
`Preface xiii
`
`A related reference work is the Java Power Reference. It is an electronic Java quick
`reference on CD-ROM that uses the java in a Nutshell style. But since it
`is
`designed for viewing in a web browser, it is fully hyperlinked and includes a pow-
`erful search engine. It is wider in scope but narrower in depth than the java in a
`Nutshell books. The java Power Reference covers all the APIs of the Java 2 plat-
`form, plus the APIs of many standard extensions. But it does not include tutorial
`chapters on the various APIs, nor does it include descriptions of the individual
`classes.
`
`You can find a complete list of Java books from O’Reilly & Associates at
`http://javaoreillycomfl Books that focus on the core Java APIs, as this one does,
`include:
`
`Exploringjava, by Pat Niemeyer and Joshua Peck
`A comprehensive tutorial introduction to Java, with an emphasis on client—side
`Java programming.
`
`
`
`Page 14 of 238
`
`

`

`java Threads, by Scott Oaks and Henry Wong
`Java makes multithreaded programming easy, but doing it right can still be
`tricky. This book explains everything you need to know.
`
`java 1/0, by Elliotte Rusty Harold
`Java’s stream-based input/output architecture is a thing of beauty. This book
`covers it in the detail it deserves.
`
`java Network Programming, by Elliotte Rusty Harold
`This book documents the Java networking APIS in detail.
`
`1
`java Security, by Scott Oaks
`This book explains the Java access-control mechanisms in detail and also doc-
`uments the authentication mechanisms of digital signatures and message
`digests.
`
`java erptograpby, by Jonathan Knudsen
`Thorough coverage of the Java Cryptography Extension, the javax.cnypto.*
`packages, and everything you need to know about cryptography in Java.
`
`Developingjava Beans, by Robert Englander
`A complete guide to writing components that work with the JavaBeans API.
`
`xiv Preface
`
`Sun distributes electronic documentation for all Java classes and methods in its
`javaa’oc HTML format. Although this d0cumentation is somewhat difficult to navi-
`gate and is rough or outdated in places, it is still an excellent starting point when
`you need to know more about a particular Java package, class, method, or field. If
`you do not already have the javaa'oc files With your Java distribution, see
`brpfljavasurmom/docs/ for a link to the latest available version. Sun also dis-
`tributes its excellent Java Tutorial online. You can browse and download it from
`btips/flauasun.com/docs/booles/tutorial/
`
`java Programming Resources Online
`
`This book is a quick reference designed for speedy access to frequently needed
`information. It does not, and cannot, tell you everything you need to know about
`Java. In addition to the books listed earlier, there are several valuable (and free)
`electronic sources of information about Java programming.
`
`Sun’s main web site for all things related to Java is http://javasuracom/ The web
`site specifically for Java developers is brazfldeueloperjavasuncom/ Much of the
`content on this developer site is password—protected, and access to it requires
`(free) registration.
`
`For Usenet discussion (in English) about Java, try the complangjauaprogrammer
`and related comp.lang.java.* newsgroups. You can find the very comprehensive
`complangjavaprogrammer FAQ by Peter van der Linden at http://wwwafiacom/
`javafaq.btm.
`
`Finally, don’t forget O’Reilly’s Java web site. bthfljavaorefllycom/ contains Java
`news and commentary and a monthly tips~and-tricks column by O’Reilly Java
`author Jonathan Knudsen.
`
`
`
`Page 15 of 238
`
`

`

`
`
`Conventions Used in This Boole
`
`We use the following formatting conventions in this book:
`
`Italic
`
`Used for emphasis and to signify the first use of a term. Italic is also used for
`commands, email addresses, web sites, FTP sites, file and directory names,
`and newsgroups.
`
`Bold
`
`Occasionally used to refer to particular keys on a computer keyboard or to
`portions of a user interface, such as the Back button or the Options menu.
`Letter Gothic
`
`Used in all Java code and generally for anything that you would type literally
`when programming,
`including keywords, data types, constants, method
`names, variables, class names, and interface names.
`
`Letter Gothic Obiique
`Used for the names of function arguments and generally as a placeholder to
`indicate an item that should be replaced with an actual value in your pro—
`gram.
`
`Preface xv
`
`Franklin, Gothic Book Condensed
`Used for the Java class synopses in the quick-reference section. This very nar-
`row font allows us to fit a lot of information on the page without a lot of dis-
`tracting line breaks. This font is also used for code entities in the descriptions
`in the quick-reference section.
`Franklin Gothic Deml Condensed
`
`Examples Online
`The examples in this book are available online and can be downloaded from the
`home page for the book at http://wwworeilly,com/catalogfiavanutj You also may
`want to visit this site to see if any important notes or errata about the book have
`been published there.
`
`Used for highlighting class, method, field, property, and constructor names in
`the quick-reference section, which makes it easier to scan the class synopses.
`
`Franklin Gothic Book Compressed Italic
`Used for method parameter names and comments in the quick—reference sec—
`tion.
`
`Requestfor Comments
`
`Please help us improve future editions of this book by reporting any errors, inac-
`curacies, bugs, misleading or confusing statements, and even plain old typos that
`you find. Please also let us know what we can do to make this book more useful
`to you. We take your comments seriously and will try to incorporate reasonable
`suggestions into future editions. You can contact us by writing:
`
`
`
`Page 16 of 238
`
`

`

`O’Reilly & Associates, Inc.
`101 Morris Street
`Sebastopol, CA 95472
`1-800-998—9938 (in the United States or Canada)
`1-707-829-051 5 (international/local)
`1-707-829-0104 (fax)
`
`You can also send us messages electronically. To be put on the mailing list or
`request a catalog, send email to:
`
`info@oreilly.com
`
`To ask technical questions or comment on the book, send email to:
`
`xvi Preface
`
`The first pass begins by reading the class files for all of the classes and interfaces
`to be documented. Almost all of the API information in the quick reference is
`available in these class files. The notable exception is the names of method argu-
`ments, which are not stored in class files. These argument names are obtained by
`parsing the Java source file for each class and interface. Where source files are not
`available,
`I obtain method argument names by parsing the API documentation
`generated by javadoc. The parsers I use to extract API information from the source
`files and javadoc files are created using the Antlr parser generator developed by
`Terrence Parr of the Magelang Institute. (See btqr/fluwwflnflnorg/ for details on
`this very powerful programming tool.)
`
`b00kquestions®oreilb1.com
`
`We have a web site for the book, where we’ll list examples, errata, and any plans
`for future editions. You can access this page at:
`
`max/flown).oreilbx.com/camlogflamnut3/
`
`For more information about this book and others, see the O’Reilly web site:
`
`bttp://www.oreilly.com
`
`How the Quick Reference Is Generated
`
`For the nerdy or merely inquisitive reader, this section explains a bit about how
`the quick-reference material in jam in a Nutshell and related books is created.
`
`As Java has evolved, so has my system for generating Java quick-reference mate-
`rial. The current system is part of a larger commercial documentation browser sys-
`tem I’m developing
`(Visit
`http://wwwdavidflanagun.comflude/
`for more
`information about it). The program works in two passes: the first pass collects and
`organizes the API information, and the second pass outputs that information in the
`form of quick-reference chapters.
`
`Once the API information has been obtained by reading class files, source files,
`and javadoc files, the program spends some time sorting and cross—referencing
`everything. Then it stores all the API information into a single large data file.
`
`The second pass reads API information from that data file and outputs quick-refer-
`ence chapters using a custom SGML format. The SGML markup is fairly complex,
`but the code that generates it is quite mundane. Once I’ve generated the SGML
`
`Page 17 of 238
`
`

`

`output, I hand it off to the production team at O’Reilly & Associates. They process
`it and convert it to troff source code. The troff source is processed with the GNU
`grofi‘ program (fip://fip.gnu.org/gnu/grofl/) and a custom set of troff macros to
`produce PostScript output that is shipped directly to the printer.
`
`Acknowledgments
`
`Many people helped in the creation of this book, and I am grateful to them all. I
`am indebted to the many, many readers of the first two editions who wrote in
`with comments, suggestions, bug reports, and praise. Their many small contribu-
`tions are scattered throughout the book. Also, my apologies to those who made
`the many good Suggestions that could not be incorporated into this edition.
`
`Paula Ferguson, a friend and colleague, has been the editor of all three editions of
`this book. Her careful reading and always-practical suggestions have made the
`book stronger, clearer, and more useful. She guided the evolution of Java in a
`Nutshell from a single book into a three—volume series and, at times, juggled edit~
`ing tasks for all three books at once. Finally, Paula went above and beyond the
`call of editorial duty by designing the hierarchy diagrams found at the start of each
`reference chapter.
`
`Preface xvii
`
`The third edition also benefited greatly from the contributions of reviewers who
`are intimately familiar with the Java platform. Joshua Bloch, one of the primary
`authors of the Java collections framework, reviewed my descriptions of the collec-
`tions classes and interfaces. Joshua was also helpful in discussing the Timer and
`TimerTask classes of Java
`1.5 with me. Mark Reinhold,
`creator of
`the
`java .1 ang. r‘ef package, explained the package to me and reviewed my documen—
`tation of it. Scott Oaks reviewed my descriptions of the Java security and cryptog-
`raphy classes and interfaces. Joshua, Mark, and Scott are all engineers with Sun
`Microsystems, and I’m very grateful for their time. The documentation of the
`javax.crypto package and its subpackages was also reviewed by Jon Eaves. Jon
`worked on a clean-room implementation of the Java Cryptography Extension
`(which is available from htqa-flwwwabaflerau/L and his cements were quite
`helpful. Jon now works for Fluent Technologies (htmflwwwfluentcomaufl con-
`sulting in Java and electronic commerce. Finally, Chapter 1 was improved by the
`comments of reviewers who were not already familiar with the Java platform:
`
`Mike Loukides provided high-level direction and guidance for the first edition of
`the book. Eric Raymond and Troy Downing reviewed that first edition—they
`helped spot my errors and omissions and offered good advice on making the
`book more useful to Java programmers.
`
`For the second edition, John Zukowski reviewed my Java 1.1 AWT quick—reference
`material, and George Reese reviewed most of the remaining new material. The
`second edition was also blessed with a “dream team" of technical reviewers from
`
`Sun. John Rose, the author of the Java inner class specification, reviewed the chap—
`ter on inner classes. Mark Reinhold, author of the new character stream classes in
`java . 1' 0, reviewed my documentation of these classes. Nakul Saraiya, the designer
`of
`the new Java Reflection API,
`reviewed my documentation
`of
`the
`java.lang.reflect package. I am very grateful to these engineers and architects;
`their efforts ‘made this a stronger, more accurate book.
`
`Page 18 of 238
`
`

`

`As always, my thanks and love to Christie.
`
`David Flanagan
`http://wwwdam'dflanagan.com/
`September 1999
`
`Christina Byrne reviewed it from the standpoint of a novice programmer, and
`Judita Byrne of Virginia Power offered her comments as a professional COBOL
`programmer.
`
`The O’Reilly 8: Associates production team has done its usual fine work of creating
`a book out of the electronic files I submit. My thanks to them all. And a special
`thanks to Lenny Muellner and Chris Maden, who worked overtime to implement
`the new and improved format of the quick-reference section.
`
`xviii Preface
`
`Page 19 of 238
`
`

`

`IntroducingJava
`
`Part I is an introduction to the Java language and the Java platformr These
`chapters provide enough information for you to get started using Java
`right away
`
`Chapter 1, Introduction
`Chapter 2, java Syntax From the Ground Up
`Chapter 3, Object-Oriented Programming infava
`Chapter 4, Tbefava Platform
`Chapter 5, java Security
`Chapter 6, javaBeans
`Chapter 7, java Programming and Documentation Conventions
`
`Chapter 8, java Development Tools
`
`Page 20 of 238
`
`

`

`CHAPTER 1
`
`Introduction
`
`Welcome to Java. Since its introduction in late 1995, the Java language and plat-
`form have taken the programing world by storm. This chapter begins by explain-
`ing what Java is and why it has become so popular. Then, as a tutorial
`introduction to the language, it walks you through a simple Java program you can
`type in, compile, and run.
`
`What Isjava?
`
`uananptwul
`
`
`it is important to distinguish between the Java programming
`In discussing Java,
`language, the Java Virtual Machine, and the Java platform. The Java programming
`language is the lang

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket