Thinking in Java

Thinking in Java

          
5
4
3
2
1

Out of Stock


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Notify me when this book is in stock
Add to Wishlist

About the Book

Thinking in Java is a "brash, arrogant, opinionated, independent, knowledgeable, interesting, readable book on Java." Eckel uses superb analogies between software concepts and everyday things to deliver a book ideal for teaching. It is unique because it was made available by Eckel on the Internet and so has been tested by thousands of users. Many of these people are waiting for the book to arrive.

Table of Contents:
What’s Inside. Foreword. Introduction. Prerequisites. Learning Java. Goals. Online Documentation. Chapters. Exercises. Multimedia CD ROM. Source Code. Coding Standards. Java Versions. Seminars and Mentoring. Errors. Note on the Cover Design. Acknowledgments. 1. Introduction to Objects. The Progress of Abstraction. An Object has an Interface. The Hidden Implementation. Reusing the Implementation. Inheritance: Reusing the Interface. Overriding base-Class Functionality. Is-a vs. is-like-a Relationships. Interchangeable Objects with Polymorphism. Dynamic Binding. Abstract Base Classes and Interfaces. Object Landscapes and Lifetimes. Collections and Iterators. The Singly-Rooted Hierarchy. Collection Libraries and Support for Easy Collection Use. The Housekeeping Dilemma: Who Should Clean Up? Exception Handling: Dealing with Errors. Multithreading. Persistence. Java and the Internet. What is the Web? Client-side Programming. Server-side Programming. A separate arena: Applications. Analysis and Design. Staying on Course. Phase 0: Let’s Make a Plan. Phase 1: What are We Making? Phase 2: How Will We Build It? Phase 3: Let’s Build It! Phase 4: Iteration. Plans Pay Off. Java vs. C++? 2. Everything is an Object. You Manipulate Objects with Handles. You Must Create All the Objects. Where Storage Lives. Special Case: Primitive Types. Arrays in Java. You Never Need to Destroy an Object. Scoping. Scope of Objects. Creating New Data Types: Class. Fields and Methods. Methods, Arguments and Return Values. The Argument List. Building a Java Program. Name Visibility. Using Other Components. The Static Keyword. Your First Java Program. Comments and Embedded Documentation. Comment Documentation. Syntax. Embedded HTML. See: Referring to Other Classes. Class Documentation Tags. Variable Documentation Tags. Method Documentation Tags. Documentation Example. Coding style. Summary. Exercises. 3. Controlling Program Flow. Using Java Operators. Precedence. Assignment. Mathematical Operators. Auto Increment and Decrement. Relational Operators. Logical Operators. Bitwise Operators. Shift Operators. Ternary If-Else Operator. The Comma Operator. String Operator +. Common pitfalls when using Operators. Casting Operators. Java has no “sizeof.” Precedence Revisited. A Compendium of Operator. Execution Control. True and False. If-Else. Iteration. Do-While. For. Break and Continue Switch. Summary. Exercises. 4. Initialization and Cleanup. Guaranteed Initialization with the Constructor. Method Overloading. Distinguishing Overloaded Methods. Overloading with Primitives. Overloading on Return Values. Default Constructors. The this Keyword. Cleanup: Finalization and Garbage Collection. What is Finalize( ) For? You Must Perform Cleanup. Member Initialization. Specifying Initialization. Constructor Initialization. Array Initialization. Multidimensional Arrays. Summary. Exercises. 5. Hiding the Implementation Package: The Library Unit. Creating Unique Package Names. A Custom Tool Library. Using Imports to Change Behavior. Package Caveat. Java Access Specifiers “Friendly.” Public: Interface Access. Private: You Can’t Touch That! Protected: “Sort of Friendly.” Interface and Implementation. Class Access. Summary. Exercises. 6. Reusing Classes. Composition Syntax. Inheritance Syntax. Initializing the Base Class. Combining Composition and Inheritance. Guaranteeing Proper Cleanup. Name Hiding. Choosing Composition vs. Inheritance. Protected. Incremental Development. Upcasting. Why “Upcasting”? The Final Keyword. Final Data. Final Methods. Final Classes. Final Caution. Initialization and Class Loading. Initialization with Inheritance. Summary. Exercises. 7. Polymorphism. Upcasting. Why Upcast? The Twist. Method Call Binding. Producing the Right Behavior. Extensibility. Overriding vs. Overloading. Abstract Classes and Methods. Interfaces. “Multiple Inheritance” in Java. Extending an Interface with Inheritance. Grouping Constants. Initializing Fields in Interfaces. Inner Classes. Inner Classes and Upcasting. Inner Classes in Methods and Scopes. The Link to the Outer Class. Static Inner Classes. Referring to the Outer Class Object. Inheriting from Inner Classes. Can Inner Classes be Overridden? Inner Class Identifiers. Why Inner Classes: Control Frameworks. Constructors and Polymorphism. Order of Constructor Calls. Inheritance and Finalize( ). Behavior of Polymorphic Methods Inside Constructors. Designing with Inheritance. Pure Inheritance vs. Extension. Downcasting and Run-Time Identification. Summary. Exercises. 8. Holding your Objects. Arrays. Arrays are First-Class Objects. Returning an Array. Collections. Disadvantage: Unknown Type. Enumerators (iterators). Types of Collections. Vector. BitSet. Stack. Hashtable. Enumerators Revisited. Sorting. The Generic Collection Library. The New Collections. Using Collections. Using Lists. Using Sets. Using Maps. Choosing an Implementation. Unsupported Operations. Sorting and Searching. Utilities. Summary. Exercises. 9. Error Handling with Exceptions. Basic Exceptions. Exception Arguments. Catching an Exception. The Try Block. Exception Handlers. The Exception Specification. Catching Any Exception. Rethrowing an Exception. Standard Java Exceptions. The Special Case of Runtime Exception. Creating Your Own Exceptions. Exception Restrictions. Performing Cleanup with Finally. What’s Finally For? Pitfall: The Lost Exception. Constructors. Exception Matching. Exception Guidelines. Summary. Exercises. 10. The Java. IO system. Input and Output. Types of InputStream. Types of OutputStream. Adding Attributes and Useful Interfaces. Reading from an InputStream with FilterInputStream. Writing to an OutputStream with FilterOutputStream. Off by itself: RandomAccessFile. The File Class. A Directory Lister. Checking For and Creating Directories. Typical Uses of IO Streams. Input Streams. Output Streams. Shorthand for File Manipulation. Reading from Standard Input. Piped Streams. StreamTokenizer. StringTokenizer. Java 1.1 IO Streams. Sources and Sinks of Data. Modifying Stream Behavior. Unchanged Classes. An Example. Redirecting Standard IO. Compression. Simple Compression with GZIP. Multi-file Storage with Zip. The Java Archive (jar) Utility. Object Serialization. Finding the Class. Controlling Serialization. Using Persistence. Summary. Exercises. 11. Run-Time Type. Identification. The Need for RTTI. The Class Object. Checking Before a Cast. RTTI Syntax. Reflection: Run-Time Class Information. A Class Method Extractor Summary. Exercises. 12. Passing and Returning Objects. Passing Handles Around. Aliasing. Making Local Copies. Pass by Value. Cloning Objects. Adding Cloneability to a Class. Successful Cloning. The Effect of Object.clone( ). Cloning a Composed Object. A Deep Copy with Vector. Deep Copy via Serialization. Adding Cloneability Further Down a Hierarchy. Why this Strange Design? Controlling Cloneability. The Copy-Constructor. Read-only Classes. Creating Read-only Classes. The Drawback to Immutability. Immutable Strings. The String and StringBuffer Classes. Strings are Special. Summary. Exercises. 13. Creating windows and Applets. Why use the AWT? The Basic Applet. Testing Applets. A More Graphical Example. Demonstrating the Framework Methods. Making a Button. Capturing an Event. Text Fields. Text Areas. Labels. Check Boxes. Radio Buttons. Drop-down Lists. List Boxes. HandleEvent( ). Controlling Layout. FlowLayout. BorderLayout. GridLayout. CardLayout. GridBagLayout. Alternatives to Action. Applet Restrictions. Applet Advantages. Windowed Applications. Menus. Dialog Boxes. The New AWT. The New Event Model. Event and Listener Types. Making Windows and Applets with the Java 1.1 AWT. Revisiting the Earlier Examples. Binding Events Dynamically. Separating Business Logic from UI Logic. Recommended Coding Approaches Java 1.1 UI APIs. Desktop Colors. Printing. The Clipboard. Visual Programming and Beans. What is a Bean? Extracting BeanInfo with the Introspector. A More Sophisticated Bean. Packaging a Bean. More Complex Bean Support. More to Beans. Introduction to Swing. Benefits of Swing. Easy Conversion. A Display Framework. Tool Tips. Borders. Buttons. Button Groups. Icons. Menus. Popup Menus. List Boxes and Combo Boxes. Sliders and Progress Bars. Trees. Tables. Tabbed Panes. The Swing Message Box. More to Swing. Summary. Exercises. 14. Multiple Threads. Responsive User Interfaces. Inheriting from Thread. Threading for a Responsive Interface. Combining the Thread with the Main Class. Making Many Threads. Daemon Threads. Sharing Limited Resources. Improperly Accessing Resources. How Java Shares Resources. Java Beans Revisited. Blocking. Becoming Blocked. Deadlock. Priorities. Thread Groups. Runnable Revisited. Too Many Threads. Summary. Exercises. 15. Network Programming. Identifying a Machine. Servers and Clients. Port: A Unique Place within the Machine. Sockets. A Simple Server and Client. Serving Multiple Clients. Datagrams. A Web Application. The Aerver Application. The NameSender Applet. Problems with this Approach. Connecting Java to CGI. Encoding Data for CGI. The Applet. The CGI Program in C++. What about POST? Connecting to Databases with JDBC. Getting the Example to Work. A GUI Version of the Lookup Program. Why the JDBC API Seem So Complex. Remote Methods. Remote Interfaces. Implementing the Remote Interface. Creating Stubs and Skeletons. Using the Remote Object. Alternatives to RMI. Summary. Exercises. 16. Design Patterns. The Pattern Concept. The Singleton. Classifying Patterns. The Observer Pattern. Simulating the Trash Recycler. Improving the design. “Make more Objects.” A Pattern for Prototyping Creation. Abstracting Usage. Multiple Dispatching. Implementing the Double Dispatch. The “Visitor” Pattern. RTTI Considered Harmful? Summary. Exercises. 17. Projects. Text Processing. Extracting Code Listings. Checking Capitalization Style. A Method Lookup Tool. Complexity Theory. Summary. Exercises. A: Using non-Java Code. The Java. Native Interface. Calling a Native Method. Accessing JNI Functions: The JNIEnv Argument. Passing and Using Java Objects. JNI and Java Exceptions. JNI and Threading. Using a Pre-existing Code Base. The Microsoft Way. J/Direct. The @dll.import Directive. The com.ms.win32 Package. Marshaling. Writing Callback Functions. Other J/Direct features. Raw Native. Interface (RNI). RNI Summary. Java/COM Integration. COM Fundamentals. MS Java/COM Integration. Developing COM Servers in Java. Developing COM Clients in Java. ActiveX/Beans integration. A Note about Native Methods and Applets. CORBA. CORBA Fundamentals. An Example. Java Applets and CORBA. CORBA vs. RMI. Summary. B. Comparing C++ and Java. C: Java Programming Guidelines. D: Performance. Basic Approach. Locating the Bottleneck. 1. Install Your Own Instrumentation. 2. JDK Profiling [2]. 3. Special Tools. Tips for Measuring Performance. Speedup Techniques. Generic Approaches. Language Dependent Approaches. Specific Situations. References. Performance Tools. Web Sites. Articles. Java Specific Books. General Books. E: A bit about Garbage Collection. F: Recommended Reading. Index.


Best Sellers


Product Details
  • ISBN-13: 9780136597230
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Prentice Hall
  • Height: 236 mm
  • No of Pages: 1152
  • Weight: 1564 gr
  • ISBN-10: 0136597238
  • Publisher Date: 13 Mar 1998
  • Binding: Paperback
  • Language: English
  • Spine Width: 40 mm
  • Width: 180 mm


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Click Here To Be The First to Review this Product
Thinking in Java
Pearson Education (US) -
Thinking in Java
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Thinking in Java

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book
    Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    ASK VIDYA