Research Catalog
The Java programming language / Ken Arnold, James Gosling, David Holmes.
- Title
- The Java programming language / Ken Arnold, James Gosling, David Holmes.
- Author
- Arnold, Ken, 1958-
- Publication
- Boston, Mass. : Addison-Wesley, c2000.
Items in the Library & Off-site
Filter by
1 Item
Status | Format | Access | Call Number | Item Location |
---|---|---|---|---|
Text | Request in advance | QA76.73.J38 A76 2000 | Off-site |
Details
- Additional Authors
- Description
- xxiv, 595 p. : ill.; 24cm.
- Summary
- "This Third Edition of The Java Programming Language is a valuable resource for both novice and advanced programmers. More than 100,000 developers who programmed with C, C++, Smalltalk, or other high-level languages have used this book to get a concise, intelligent, and deep understanding of the Java programming language." "This book is what you need to understand the basic design goals of the language and the application of the language in real-world development. It provides unique insights into why and how the language was designed and intended to be used." "The authors describe the latest version of the language, as defined in the Java Language Specification, Second Edition and implemented in version 1.3 of the Java 2 SDK, Standard Edition. This third edition has been structured to give more in-depth treatment of the newer language features, as well as informative examples on using some of the new APIs." "New and/or revised in this edition: more details on language features, including an expanded section on nested classes; more comprehensive treatment of garbage collection and related programming issues; and coverage of new APIs, such as collections and internationalization." "Thoroughly revised from start to finish, this edition fully covers the features of the current release of the Java programming language and class libraries. The book serves as a tutorial introduction to the language and essential libraries as well as a reference." "Experienced programmers will find this new edition to be a valuable reference, and will gain new insights into the subtleties of the language. Novice and intermediate programmers will benefit from the valuable examples and clear explanations of language and library features. Make sure you understand the contents of this book before you begin any serious development for the Java platform."--BOOK JACKET.
- Series Statement
- The Java series
- Uniform Title
- Java series
- Subject
- Bibliography (note)
- Includes bibliographical references (p. 563-567) and index.
- Processing Action (note)
- committed to retain
- Contents
- 1.2 Variables 3 -- 1.3 Comments in Code 6 -- 1.4 Named Constants 6 -- 1.5 Unicode Characters 8 -- 1.6 Flow of Control 9 -- 1.7 Classes and Objects 11 -- 1.7.1 Creating Objects 12 -- 1.7.2 Static or Class Fields 13 -- 1.7.3 Garbage Collector 14 -- 1.8 Methods and Parameters 14 -- 1.8.1 Invoking a Method 15 -- 1.8.2 This Reference 16 -- 1.8.3 Static or Class Methods 17 -- 1.9 Arrays 17 -- 1.10 String Objects 20 -- 1.11 Extending a Class 22 -- 1.11.1 Invoking Methods from the Superclass 23 -- 1.11.2 Object Class 24 -- 1.11.3 Type Casting 25 -- 1.12 Interfaces 25 -- 1.13 Exceptions 27 -- 1.14 Packages 30 -- 1.15 Java Platform 32 -- 1.16 Other Topics Briefly Noted 33 -- 2 Classes and Objects 35 -- 2.1 A Simple Class 36 -- 2.1.1 Class Members 36 -- 2.1.2 Class Modifiers 37 -- 2.2 Fields 38 -- 2.2.1 Field Initialization 38 -- 2.2.2 Static Fields 39 -- 2.2.3 final Fields 40 -- 2.3 Access Control 41 -- 2.4 Creating Objects 42 -- 2.5 Construction and Initialization 43 -- 2.5.1 Constructors 44 -- 2.5.2 Initialization Blocks 48 -- 2.5.3 Static Initialization 49 -- 2.6 Methods 50 -- 2.6.1 Static Methods 51 -- 2.6.2 Method Invocations 51 -- 2.6.3 Method Execution and Return 53 -- 2.6.4 Parameter Values 54 -- 2.6.5 Using Methods to Control Access 57 -- 2.7 this 59 -- 2.8 Overloading Methods 61 -- 2.9 Main Method 62 -- 2.10 Native Methods 63 -- 3 Extending Classes 65 -- 3.1 An Extended Class 66 -- 3.2 Constructors in Extended Classes 69 -- 3.2.1 Constructor Order Dependencies 71 -- 3.3 Inheriting and Redefining Members 73 -- 3.3.1 Overriding 73 -- 3.3.2 Hiding Fields 74 -- 3.3.3 Accessing Inherited Members 75 -- 3.3.4 Accessibility and Overriding 77 -- 3.3.5 Hiding Static Members 77 -- 3.3.6 Super Keyword 78 -- 3.4 Type Compatibility and Conversion 79 -- 3.4.1 Compatibility 79 -- 3.4.2 Explicit Type Casting 80 -- 3.4.3 Testing for Type 80 -- 3.5 What protected Really Means 81 -- 3.6 Marking Methods and Classes final 84 -- 3.7 Abstract Classes and Methods 85 -- 3.8 Object Class 87 -- 3.9 Cloning Objects 89 -- 3.9.1 Strategies for Cloning 89 -- 3.9.2 Correct Cloning 91 -- 3.9.3 Shallow versus Deep Cloning 94 -- 3.10 Extending Classes: How and When 95 -- 3.11 Designing a Class to Be Extended 96 -- 3.11.1 Designing an Extensible Framework 97 -- 3.12 Single Inheritance versus Multiple Inheritance 102 -- 4 Interfaces 105 -- 4.1 A Simple Interface Example 106 -- 4.2 Interface Declarations 108 -- 4.2.1 Interface Constants 109 -- 4.2.2 Interface Methods 109 -- 4.2.3 Interface Modifiers 110 -- 4.3 Extending Interfaces 110 -- 4.3.1 Inheriting and Hiding Constants 111 -- 4.3.2 Inheriting, Overriding, and Overloading Methods 112 -- 4.4 Working with Interfaces 113 -- 4.4.1 Implementing Interfaces 114 -- 4.4.2 Using an Implementation 116 -- 4.5 Marker Interfaces 117 -- 4.6 When to Use Interfaces 118 -- 5 Nested Classes and Interfaces 121 -- 5.1 Static Nested Types 121 -- 5.1.1 Static Nested Classes 122 -- 5.1.2 Nested Interfaces 123 -- 5.2 Inner Classes 123 -- 5.2.1 Accessing Enclosing Objects 125 -- 5.2.2 Extending Inner Classes 126 -- 5.2.3 Inheritance, Scoping, and Hiding 127 -- 5.3 Local Inner Classes 129 -- 5.4 Anonymous Inner Classes 131 -- 5.5 Inheriting Nested Types 132 -- 5.6 Nesting in Interfaces 134 -- 5.6.1 Modifiable Variables in Interfaces 135 -- 5.7 Implementation of Nested Types 136 -- 6 Tokens, Operators, and Expressions 137 -- 6.1 Lexical Elements 137 -- 6.1.1 Character Set 138 -- 6.1.3 Tokens 139 -- 6.1.4 Identifiers 140 -- 6.1.5 Keywords 141 -- 6.2 Types and Literals 141 -- 6.2.1 Reference Literals 142 -- 6.2.2 Boolean Literals 142 -- 6.2.3 Character Literals 142 -- 6.2.4 Integer Literals 143 --r 6.2.5 Floating-Point Literals 143 -- 6.2.6 String Literals 144 -- 6.2.7 Class Literals 144 -- 6.3 Variables 144 -- 6.3.1 Field and Local Variable Declarations 145 -- 6.3.2 Parameter Variables 146 -- 6.3.3 final Variables 146 -- 6.4 Array Variables 148 -- 6.4.1 Array Modifiers 149 -- 6.4.2 Arrays of Arrays 149 -- 6.4.3 Array Initialization 150 -- 6.4.4 Arrays and Types 151 -- 6.5 Meanings of Names 152 -- 6.6 Arithmetic Operations 156 -- 6.6.1 Integer Arithmetic 156 -- 6.6.2 Floating-Point Arithmetic 156 -- 6.6.3 Strict and non-Strict Floating-Point Arithmetic 158 -- 6.7 General Operators 159 -- 6.7.1 Increment and Decrement Operators 159 -- 6.7.2 Relational and Equality Operators 160 -- 6.7.3 Logical Operators 161 -- 6.7.4 instanceof 162 -- 6.7.5 Bit Manipulation Operators 163 -- 6.7.6 Conditional Operator?: 164 -- 6.7.7 Assignment Operators 165 -- 6.7.8 String Concatenation Operator 167 -- 6.7.9 new 167 -- 6.8 Expressions 168 -- 6.8.1 Order of Evaluation 168 -- 6.8.2 Expression Type 169 -- 6.8.3 Implicit Type Conversions 169 -- 6.8.4 Explicit Type Casts 171 -- 6.8.5 String Conversions 172 -- 6.9 Member Access 173 -- 6.9.1 Finding the Right Method 173 -- 6.10 Operator Precedence and Associativity 176 -- 7 Control Flow 179 -- 7.1 Statements and Blocks 179 -- 7.2 if-else 180 -- 7.3 switch 182 -- 7.4 while and do-while 185 -- 7.5 for 186 -- 7.6 Labels 189 -- 7.7 break 189 -- 7.8 continue 192 -- 7.9 return 193 -- 7.10 What, No goto? 193 -- 8 Exceptions 195 -- 8.1 Creating Exception Types 196 -- 8.2 throw 197 -- 8.2.1 Transfer of Control 198 -- 8.2.2 Asynchronous Exceptions 198 -- 8.3 Throws Clause 199 -- 8.3.1 throws Clauses and Method Overriding 200 -- 8.3.2 throws Clauses and Native Methods 201 -- 8.4 try, catch, and finally 202 -- 8.4.1 finally 204 -- 8.5 When to Use Exceptions 206 -- 9 Strings 209 -- 9.1 Basic String Operations 209 -- 9.2 String Comparisons 211 -- 9.2.1 String Literal Equivalence 214 -- 9.3 Utility Methods 215 -- 9.4 Making Related Strings 215 -- 9.5 String Conversions 217 -- 9.6 Strings and char Arrays 218 -- 9.7 Strings and byte Arrays 220 -- 9.7.1 Character Encodings 221 -- 9.8 StringBuffer Class 222 -- 9.8.1 Modifying the Buffer 223 -- 9.8.2 Getting Data Out 225 -- 9.8.3 Capacity Management 226 -- 10 Threads 227 -- 10.1 Creating Threads 229 -- 10.2 Using Runnable 231 -- 10.3 Synchronization 235 -- 10.3.1 synchronized Methods 235 -- 10.3.2 Static Synchronized Methods 238 -- 10.3.3 synchronized Statements 238 -- 10.3.4 Synchronization Designs 242 -- 10.4 wait, notifyAll, and notify 244 -- 10.5 Details of Waiting and Notification 246 -- 10.6 Thread Scheduling 248 -- 10.6.1 Voluntary Rescheduling 249 -- 10.7 Deadlocks 252 -- 10.8 Ending Thread Execution 254 -- 10.8.1 Cancelling a Thread 255 -- 10.8.2 Waiting for a Thread to Complete 257 -- 10.9 Ending Application Execution 259 -- 10.10 volatile 260 -- 10.11 Thread Management, Security and ThreadGroup 261 -- 10.12 Threads and Exceptions 266 -- 10.12.1 Don't stop 266 -- 10.13 ThreadLocal Variables 267 -- 10.14 Debugging Threads 269 -- 11 Programming with Types 271 -- 11.1 Wrapper Classes 272 -- 11.1.1 Void 274 -- 11.1.2 Boolean 274 -- 11.1.3 Character 275 -- 11.1.4 Number 279 -- 11.1.5 Integer Wrappers 279 -- 11.1.6 Floating-Point Wrapper Classes 281 -- 11.2 Reflection 282 -- 11.2.1 Class class 283 -- 11.2.2 Naming Classes 287 -- 11.2.3 Examining Class Members 288 -- 11.2.4 Modifier Class 292 -- 11.2.5 Field Class 292 -- 11.2.6 Method Class 294 -- 11.2.7 Creating New Objects and the Constructor Class 296 -- 11.2.8 Access Checking and AccessibleObject 299 -- 11.2.9 Arrays 299 -- 11.2.10 Packages 301 -- 11.2.11 Proxy Classl 301 -- 11.3 Loading Classes 304 -- 11.3.1 ClassLoader Class 307 -- 11.3.2 Preparing a Class for use 309 -- 11.3.3 Loading Related Resources 310 -- 12 Garbage Collection and Memory 313 -- 12.1 Garbage Collection 313 -- 12.2 A Simple Model 314 -- 12.3 Finalization 316 -- 12.3.1 Resurrecting Objects during finalize 318 -- 12.4 Interacting with the Garbage Collector 318 -- 12.5 Reachability States and Reference Objects 320 -- 12.5.1 Reference Class 321 -- 12.5.2 Strengths of Reference and Reachability 321 -- 12.5.3 Reference Queues 325 -- 13 Packages 329 -- 13.1 Package Naming 330 -- 13.2 Type Imports 331 -- 13.3 Package Access 332 -- 13.3.1 Accessibility and Overriding Methods 333 -- 13.4 Package Contents 336 -- 13.5 Package Objects and Specifications 337 -- 14 Documentation Comments 341 -- 14.1 Anatomy of a Doc Comment 342 -- 14.2 Tags 343 -- 14.2.1 @see 343 -- 14.2.2 {@link} 344 -- 14.2.3 @param 345 -- 14.2.4 @return 345 -- 14.2.5 @throws and @exception 345 -- 14.2.6 @deprecated 345 -- 14.2.7 @author 346 -- 14.2.8 @version 346 -- 14.2.9 @since 346 -- 14.2.10 {@docRoot} 347 -- 14.3 An Example 347 -- 14.4 External Conventions 352 -- 14.4.1 Overview and Package Documentation 352 -- 14.4.2 Doc-files Directory 353 -- 14.5 Notes on Usage 353 -- 15 I/O Package 355 -- 15.1 Byte Streams 357 -- 15.1.1 InputStream 357 -- 15.1.2 OutputStream 360 -- 15.2 Character Streams 362 -- 15.2.1 Reader 363 -- 15.2.2 Writer 366 -- 15.2.3 Character Streams and the Standard Streams 367 -- 15.3 InputStreamReader and OutputStreamWriter 367 -- 15.4 A Quick Tour of The Stream Classes 369 -- 15.4.1 Synchronization and Concurrency 370 -- 15.4.2 Filter Streams 371 -- 15.4.3 Buffered Streams 374 -- 15.4.4 Piped Streams 375.
- ISBN
- 0201704331
- OCLC
- 44600657
- SCSB-10086454
- Owning Institutions
- Harvard Library