IMPORTANT COVID-19 UPDATES

9780201310061

The Java Programming Language

by ;
  • ISBN13:

    9780201310061

  • ISBN10:

    0201310066

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 1997-12-01
  • Publisher: Prentice Hall
  • View Upgraded Edition

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.95 Save up to $9.99
  • Buy Used
    $29.96

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

Written for programmers who have had experience with object-oriented programming, this book explains the design motivation of JDK 1.1 and 1.2 and the tradeoffs involved in using specific features. The second edition has increased coverage of classes: extending classes, tokens, operators and expressions, I/O utilities, programming with types, native methods, and new packages which are all included with JDK 1.1 and 1.2.

Table of Contents

1 A Quick Tour of Java
1(28)
1.1 Getting Started
1(2)
1.2 Variables
3(2)
1.3 Comments in Code
5(1)
1.4 Named Constants
5(2)
1.4.1 Unicode Characters
6(1)
1.5 Flow of Control
7(2)
1.6 Classes and Objects
9(3)
1.6.1 Creating Objects
10(1)
1.6.2 Static or Class Fields
11(1)
1.6.3 The Garbage Collector
11(1)
1.7 Methods and Parameters
12(2)
1.7.1 Invoking a Method
12(1)
1.7.2 The this Reference
13(1)
1.7.3 Static or Class Methods
14(1)
1.8 Arrays
14(2)
1.9 String Objects
16(2)
1.10 Extending a Class
18(2)
1.10.1 Invoking Methods from the Superclass
19(1)
1.10.2 The Object Class
20(1)
1.11 Interfaces
20(2)
1.12 Exceptions
22(2)
1.13 Packages
24(2)
1.14 The Java Platform
26(1)
1.15 Other Topics Briefly Noted
27(2)
2 Classes and Objects
29(30)
2.1 A Simple Class
30(1)
2.2 Fields
30(1)
2.3 Access Control and Inheritance
31(1)
2.4 Creating Objects
32(1)
2.5 Constructors
33(3)
2.6 Methods
36(6)
2.6.1 Parameter Values
38(3)
2.6.2 Using Methods to Control Access
41(1)
2.7 this
42(2)
2.8 Overloading Methods
44(1)
2.9 Static Members
44(2)
2.10 Initialization Blocks
46(1)
2.11 Garbage Collection and finalize
47(3)
2.11.1 finalize
48(2)
2.11.2 Resurrecting Objects during finalize
50(1)
2.12 Nested Classes and Interfaces
50(5)
2.12.1 Local Inner Classes
53(2)
2.13 main
55(1)
2.14 The toString Method
56(1)
2.15 Native Methods
57(2)
3 Extending Classes
59(32)
3.1 An Extended Class
59(4)
3.2 What protected Really Means
63(1)
3.3 Constructors in Extended Classes
64(3)
3.3.1 Constructor Order Dependencies
65(2)
3.4 Overriding Methods, Hiding Fields, and Nested Classes
67(4)
3.4.1 The super Keyword
70(1)
3.5 Marking Methods and Classes final
71(2)
3.6 The Object Class
73(1)
3.7 Anonymous Classes
74(1)
3.8 Abstract Classes and Methods
75(2)
3.9 Cloning Objects
77(5)
3.10 Extending Classes: How and When
82(1)
3.11 Designing a Class to Be Extended
83(8)
4 Interfaces
91(12)
4.1 An Example Interface
91(3)
4.2 Single Inheritance versus Multiple Inheritance
94(1)
4.3 Extending Interfaces
95(2)
4.3.1 Name Conflicts
96(1)
4.4 Implementing Interfaces
97(2)
4.5 Using an Implementation
99(1)
4.6 Marker Interfaces
100(1)
4.7 When to Use Interfaces
101(2)
5 Tokens, Operators, and Expressions
103(36)
5.1 Character Set
103(1)
5.2 Comments
104(1)
5.3 Tokens
105(1)
5.4 Identifiers
106(1)
5.4.1 Java Keywords
106(1)
5.5 Primitive Types
107(1)
5.6 Literals
107(3)
5.6.1 Object References
108(1)
5.6.2 Boolean
108(1)
5.6.3 Integers
108(1)
5.6.4 Floating-Point Numbers
108(1)
5.6.5 Characters
109(1)
5.6.6 Strings
109(1)
5.6.7 Class Literals
110(1)
5.7 Declarations of Variables
110(4)
5.7.1 Using final for Variables
111(1)
5.7.2 The Meanings of Names
112(2)
5.8 Array Variables
114(3)
5.8.1 Arrays of Arrays
116(1)
5.9 Initial Values
117(1)
5.9.1 Array Initializers
117(1)
5.10 Operator Precedence and Associativity
118(2)
5.11 Order of Evaluation
120(1)
5.12 Expression Type
121(1)
5.13 Type Conversions
121(4)
5.13.1 Implicit Conversion
121(1)
5.13.2 Explicit Casts and instanceof
122(3)
5.13.3 String Conversions
125(1)
5.14 Member Access
125(3)
5.15 Arithmetic Operators
128(3)
5.15.1 Integer Arithmetic
128(1)
5.15.2 Floating-Point Arithmetic
128(2)
5.15.3 Java Floating-Point Arithmetic and IEEE-754
130(1)
5.15.4 String Concatenation
130(1)
5.16 Increment and Decrement Operators
131(1)
5.17 Relational, Equality, and Logical Operators
132(2)
5.18 Bitwise Operators
134(1)
5.19 The Conditional Operator ?:
135(1)
5.20 Assignment Operators
136(1)
5.21 Package Names
136(3)
6 Control Flow
139(12)
6.1 Statements and Blocks
139(1)
6.2 if-else
140(2)
6.3 switch
142(2)
6.4 while and do-while
144(1)
6.5 for
145(1)
6.6 Labels
146(1)
6.7 break
147(1)
6.8 continue
148(1)
6.9 return
149(1)
6.10 What, No goto?
149(2)
7 Exceptions
151(10)
7.1 Creating Exception Types
152(1)
7.2 throw
153(1)
7.3 The throws Clause
153(2)
7.4 try, catch, and finally
155(4)
7.4.1 finally
157(2)
7.5 When to Use Exceptions
159(2)
8 Strings
161(18)
8.1 Basic String Operations
161(2)
8.2 String Comparisons
163(3)
8.3 Utility Methods
166(1)
8.4 Making Related Strings
167(2)
8.5 String Conversions
169(1)
8.6 Strings and char Arrays
170(1)
8.7 Strings and byte Arrays
171(1)
8.8 The StringBuffer Class
172(7)
8.8.1 Modifying the Buffer
173(2)
8.8.2 Getting Data Out
175(1)
8.8.3 Capacity Management
176(3)
9 Threads
179(30)
9.1 Creating Threads
181(2)
9.2 Synchronization
183(5)
9.2.1 Synchronized Methods
183(2)
9.2.2 Synchronized Statements
185(3)
9.3 wait, notiFyAll, and notify
188(2)
9.4 Details of wait and notify
190(1)
9.5 Thread Scheduling
191(3)
9.6 Deadlocks
194(1)
9.7 Ending Thread Execution
195(5)
9.7.1 The End of a Thread's Life
195(2)
9.7.2 Waiting for a Thread to Complete
197(1)
9.7.3 Don't stop
198(1)
9.7.4 Suspending Threads
199(1)
9.8 Ending Application Execution
200(1)
9.9 Using Runnable
201(1)
9.10 volatile
202(1)
9.11 Thread Security and ThreadGroup
203(4)
9.12 Debugging Threads
207(2)
10 Packages
209(6)
10.1 Package Naming
210(1)
10.2 Package Access
211(1)
10.3 Package Contents
212(3)
11 Documentation Comments
215(10)
11.1 Paragraphs
216(3)
11.1.1 @see
216(1)
11.1.2 @param
217(1)
11.1.3 @return
217(1)
11.1.4 @exception
217(1)
11.1.5 @deprecated
217(1)
11.1.6 @author
218(1)
11.1.7 @version
218(1)
11.1.8 @since
219(1)
11.2 An Example
219(4)
11.3 Notes on Usage
223(2)
12 The I/O Package
225(48)
12.1 Byte Streams
226(1)
12.2 InputStream
227(2)
12.3 OutputStream
229(2)
12.4 Character Streams
231(2)
12.4.1 Character Streams and the Standard Streams
231(2)
12.5 Reader
233(2)
12.6 Writer
235(1)
12.7 Summary of I/O Types
236(1)
12.8 InputStreamReader and OutputStreamWriter
237(1)
12.9 Filter Streams
238(2)
12.10 Print Streams
240(1)
12.11 Buffered Streams
240(2)
12.12 ByteArray Byte Streams
242(1)
12.13 CharArray Character Streams
242(2)
12.14 String Character Streams
244(1)
12.15 File Streams and FileDescriptor
245(1)
12.16 Piped Streams
246(1)
12.17 SequenceInputStream
247(1)
12.18 LineNumberReader
248(1)
12.19 Pushback Streams
249(1)
12.20 StreamTokenizer
250(5)
12.21 Data Byte Streams
255(2)
12.22 The Data Stream Classes
257(1)
12.23 RandomAccessFile
258(1)
12.24 The Object Byte Streams
259(8)
12.24.1 Making Your Classes Serializable
260(2)
12.24.2 Serialization and Deserialization Order
262(1)
12.24.3 Customized Serialization and Externalizable
263(2)
12.24.4 Object Versioning
265(2)
12.24.5 The Externalizable Interface
267(1)
12.25 The File Class
267(4)
12.25.1 FilenameFilter
270(1)
12.26 The IOException Classes
271(2)
13 Standard Utilities
273(22)
13.1 BitSet
274(2)
13.2 Enumeration
276(1)
13.3 Implementing an Enumeration Interface
276(2)
13.4 Vector
278(4)
13.5 Stack
282(1)
13.6 Dictionary
283(1)
13.7 Hashtable
284(2)
13.8 Properties
286(2)
13.9 Observer/Observable
288(3)
13.10 Random
291(1)
13.11 StringTokenizer
292(3)
14 Programming with Types
295(26)
14.1 Wrapper Classes: An Overview
296(1)
14.2 Void
297(1)
14.3 Boolean
297(1)
14.4 Character
297(3)
14.5 Number
300(1)
14.6 The Integer Wrapper Classes
301(1)
14.7 The Floating-Point Wrapper Classes
302(1)
14.8 Reflection
303(12)
14.8.1 Class
304(2)
14.8.2 Examining Classes
306(3)
14.8.3 Field
309(1)
14.8.4 Method
310(2)
14.8.5 Creating New Objects and Constructor
312(1)
14.8.6 Arrays
313(2)
14.9 Loading Classes
315(6)
14.9.1 Loading Related Resources
319(2)
15 System Programming
321(14)
15.1 Standard I/O Streams
321(1)
15.2 Memory Management
322(1)
15.3 System Properties
323(2)
15.4 Creating Processes
325(4)
15.5 Runtime
329(2)
15.6 Miscellaneous
331(1)
15.7 Security
331(1)
15.8 Math
332(3)
16 Internationalization and Localization
335(18)
16.1 Locale
336(2)
16.2 Resource Bundles
338(5)
16.2.1 ListResourceBundle
340(2)
16.2.2 PropertyResourceBundle
342(1)
16.2.3 Subclassing ResourceBundle
343(1)
16.3 Time, Dates, and Calendars
343(7)
16.3.1 Calendars
344(4)
16.3.2 Time Zones
348(1)
16.3.3 GregorianCalendar and SimpleTimeZone
348(2)
16.4 Formatting and Parsing Dates and Times
350(3)
17 Standard Packages
353(20)
17.1 java.text--Internationalization and Localization for Text
354(5)
17.1.1 Collation
354(1)
17.1.2 Formatting and Parsing
355(3)
17.1.3 Text Boundaries
358(1)
17.2 java.awt--The Abstract Window Toolkit
359(2)
17.3 java.applet--Applets
361(1)
17.4 java.rmi--Remote Method Invocation
362(5)
17.5 java.beans--Java Components
367(1)
17.6 java.net--The Network
367(3)
17.7 java.math--Mathematics
370(2)
17.8 java.sql--Relational Database Access
372(1)
17.9 java.security--Security Tools
372(1)
Appendix A: Runtime Exceptions 373(4)
A.1 RuntimeException Classes 374(1)
A.2 Error Classes 375(2)
Appendix B: Useful Tables
377(4)
Table 1: Keywords
377(1)
Table 2: Operator Precedence
378(1)
Table 3: Unicode Digits
378(1)
Table 4: Unicode Letters and Digits
379(1)
Table 5: Special Characters Using \
380(1)
Table 6: Documentation Comment Tags
380(1)
Further Reading 381(4)
Index 385

Rewards Program

Write a Review