Hardcore Java and over one million other books are available for Amazon Kindle. Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Buy Used
Used - Acceptable See details
$5.66 & eligible for FREE Super Saver Shipping on orders over $25. Details

or
Sign in to turn on 1-Click ordering.
 
   
Kindle Edition
 
   
More Buying Choices
Have one to sell? Sell yours here
Hardcore Java
 
 
Start reading Hardcore Java on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Hardcore Java [Paperback]

Robert Simmons (Author)
2.8 out of 5 stars  See all reviews (26 customer reviews)

List Price: $39.95
Price: $30.15 & this item ships for FREE with Super Saver Shipping. Details
You Save: $9.80 (25%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it delivered Monday, January 30? Choose One-Day Shipping at checkout. Details

Formats

Amazon Price New from Used from
Kindle Edition $17.27  
Paperback $30.15  

Book Description

January 1, 2004

Java has quickly become one of the most important languages in programming, particularly for professional and enterprise-level projects. From its infancy as a language primarily used for web applets to its maturity through servlets, Enterprise JavaBeans, and database access, Java has become a complex and robust tool for today's developer.

Hardcore Java takes this language and breaks it apart, piece by piece, revealing the important secrets and tricks that will take you from a junior-level programmer to a seasoned and expert developer. You'll fly through the fundamentals and quickly find yourself learning about advanced memory management techniques, optimization and bytecode-level enhancements, and the techniques required to build lightning-fast GUIs. Throughout the book, you'll also master the art of writing and maintaining bulletproof and error-proof code, all while grasping the intricacies of the Java language.

Hardcore Java covers:

  • Use of the final keyword to optimize and protect your Java classes.
  • Complete and thorough coverage of all types of nested classes, including how to optimize anonymous and inner classes.
  • Detailed discussion of immutable objects, including unique tips on when to use them (and when not to).
  • Elimination of bugs through exception-handling management.
  • In-depth studies of constants, including their impact on the Java memory model.
  • The most thorough discussion of reflection in print, moving far beyond other books' "Hello World" coverage.
  • Construction and use of dynamic proxies, in both Java Standard and Enterprise editions.
  • Expansive coverage of weak references, including usage patterns and their role in garbage collection and memory management.
Hardcore Java is an invaluable addition to every programmer's library, and even the most advanced developers will find themselves moving beyond their own conceptions into truly advanced applications of the language. Thousands of lines of code, heavily commented and easily runnable, illustrate each concept in the book.

Frequently Bought Together

Customers buy this book with Java: The Good Parts $16.35

Hardcore Java + Java: The Good Parts
  • This item: Hardcore Java

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Java: The Good Parts

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details


Customers Who Bought This Item Also Bought


Editorial Reviews

Amazon.com Review

Just as software development is an iterative process in which an application is never truly "done," the education of a developer should continue for years. You can use Hardcore Java as a guide to the transition from novice Java programmer to journeyman, or as a map to parts of the language you haven't explored (or explored adequately) in your development work to date. Because of those design goals, this book is something of a catch-all, covering about a dozen general topics ranging from exception-handling to nested classes (and interfaces!) and the reflection API. The coverage clearly derives from the author's "lessons learned" notes, and they're rich with information. If nothing in this book surprises you, you're probably very experienced with Java.

In addition to this book's tutorial function, Hardcore Java puts forth and defends a number of opinions about the design and style of Java software. One example: After explaining how bit fields work--bit fields aren't widely used in Java programming, and their advantages may be interesting to some programmers--Robert Simmons points out that they're inherently limited in their ability to contain data, and that this can cause problems. This is the kind of design tradeoff that more advanced Java programmers have to consider, and Simmons does the Java community a service by showing programmers how to think critically about the capabilities of their language. --David Wall

Topics covered: Advanced Java topics, including final constants, collections, exception handling, and nested classes. There's a useful bit about getting customers to help you design the data models they need, and very extensive coverage of reflection.

Review

"Hardcore Java will help even the most advanced developers move beyond their own limited understanding about Java into truly advanced applications of the language. That transformation of a developer from an intermediate-level programmer to a true guru is the goal of this book which distills years of experience into a cincise but generous compendium of java guru expertise. It reveals the difficult and rarely understood secrets of the language that true master programmers need to know." Industrial Networking and Open Control, June

Product Details

  • Paperback: 400 pages
  • Publisher: O'Reilly Media; 1st edition (January 1, 2004)
  • Language: English
  • ISBN-10: 0596005687
  • ISBN-13: 978-0596005689
  • Product Dimensions: 9.2 x 7 x 0.8 inches
  • Shipping Weight: 1.3 pounds (View shipping rates and policies)
  • Average Customer Review: 2.8 out of 5 stars  See all reviews (26 customer reviews)
  • Amazon Best Sellers Rank: #1,505,168 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

26 Reviews
5 star:
 (4)
4 star:
 (3)
3 star:
 (6)
2 star:
 (10)
1 star:
 (3)
 
 
 
 
 
Average Customer Review
2.8 out of 5 stars (26 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

58 of 60 people found the following review helpful:
1.0 out of 5 stars Very disappointing, June 30, 2004
This review is from: Hardcore Java (Paperback)
In the preface, the author states that the goal of this book is to transform a developer from the intermediate level to a true guru. In the back cover it even promises that "you'll master the art of writing error-prone (sic!) code", and the reference to "error-prone code" sadly finds its confirmation once one starts reading.

It takes about two chapters to demolish the author's credibility as a guru, and you will be reading the rest of the book with a skeptical eye, doubting every assertion that looks questionable and suspecting that the author is talking well above his level of competence, and patronizing about it too!

The first chapters are an atrocious review of some Java concepts, densely packed with serious mistakes, not typos, mistakes (plenty of typos too).

As an example, on page 9 the definition of the `for' statement is wrong, a simple check of the Java Language Specification would have spared the author some embarrassment.

On page 15 the author gives us wrong rules for labels in Java, and in the same page he confuses the logic of the `break' and `continue' statements, providing also a logically wrong code example, just to screw-up things even better.

I would not know how to describe the section on "Chained deferred initialization" on page 53, "raving" maybe. This one is cited in the errata page at oreilly.com, and the "author regrets that it slipped through the proverbial cracks". I am more concerned that something like that has been actually written (complete with code samples!), than that it has passed unscathed through editing and reviewing. Let's hope it was written by somebody else playing with the author's laptop. Somebody who does not know what JVM means.

There are also less severe but equally confidence-abating points, like, on page 25, the form:

new String("A button to show" + text);

which we should not find in books for guru wannabes.

The author is probably a productive software architect, some points, later in the book, are interesting, though nothing could be defined advanced, but he does not know Java better than an average developer, and this book does not add very much to an intermediate level, apart, maybe, from a warning about writing books: writing a book can transform you from a good developer into a bad author.

It is sad that we are flooded with such mediocre and unprofessional "error-prone"publications from such once reputable publishers, from time to time I still re-read and enjoy the conciseness, clarity and value of classics like K&R's "The C Programming Language" and I wonder why today's output is so vastly inferior.

As one of the few exceptions, I strongly recommend Bloch's "Effective Java" (Addison-Wesley) which is truly a book written by a guru. After reading that one, "Hardcore Java" will seem even emptier.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


32 of 34 people found the following review helpful:
2.0 out of 5 stars Number of errors distracting and weak wrt "why do this", May 26, 2004
This review is from: Hardcore Java (Paperback)
A typo from the back cover sums things up, "Also, you'll master the art of writing and maintaining bulletproof and error-prone code...". I suggest going to the O'Reilly website and reading the errata before buying.

Another one of my favorite lines in the book is, "The only way to clear an entire bit...". Anyway, why is there a 5 page discussion on bit manipulation in a book entitled Harcore Java?

I wanted to like this book. There is some good advice here, but you have to sift through a lot of text to find it. The first chapter, of 42 pages, contains a lot of very basic beginner type information and could be reduced to:
1. Chain constructors because...
2. Don't hide exception information...
3. Make the default case of an if/else or switch be an assert because...
Discussions about every object descending from java.lang.Object, if statements, ternary expressions, for loops, break, continue, labels, and a reminder that System.exit() causes your program to exit, are misplaced in all but the most basic of books for beginners. That's not how this book is advertised.

The author mentions assert and takes a swipe at a discussion on assert versus the various runtime exceptions. A good opportunity to discuss Design by Contract and how it's core tenants will lead to asserts and NOT IllegalArgumentException (and it's ilk) is missed entirely. This is the kind of information I would expect in a Hardcore book.

The author appears to really like reflection. Too bad there are no good examples on why you would want to use reflection, such as dynamic mock objects, overcoming a few difficulties while unit testing, specific library implementations (making JMS messages look like function calls, for example), etc. Instead we get a toString() implementation, a discussion on beans/introspection, and an example unit test that has very limited scope. The author suggests mayby GUIs could be built using reflection, but fails to expound on this fantasy. Imagine every GUI looking like a simple properties editor. This is not the kind of statement you throw out and don't attempt to back it up. At least the reader is given a warning, although slight, about the performance of using reflection.

The chapter on Proxies is made up of a discussion on the Proxy Pattern and dynamic proxies. The first half of the chapter is a rehash of a well known pattern and there are no reasons given why you'd ever use a dynamic proxy.

The chapter on references covers no new ground. The one example of weak references in listener lists skips over the problem that, often, the only reference to the listener is in the list iteself. Otherwise, Sun could rewrite their listeners and clear up lots of leaks.

The chapter on JDK 1.5 contains some errors likely related to changes made while the book was in production. Anyway, there's nothing here you couldn't find online.

The chapter on immutable objects has good advice. Too bad examples later in the book don't follow the advice. In the section on Constraints the author calls them, "reusable and immutable objects", yet in the very next example doesn't make the private data final. Eat your own cooking before asking us to eat it too.

One last thing, the book is way over priced. It should be $20 and about 150 pages smaller. Of course, then it would have to be retitled, "A Few Java Tips".

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


13 of 16 people found the following review helpful:
2.0 out of 5 stars Full of errors, avoid, April 20, 2004
Amazon Verified Purchase(What's this?)
This review is from: Hardcore Java (Paperback)
This book has many errors, both typographical and factual. A lot of the advice is dodgy, to say the least. My impression is that the author is trying to write beyond his competence level, but at the same times manages to be patronizing. I'm currently preparing a (practically) page-by-page critique of the problems with this tome. I'll publish a link here when I have a substantial section completed. (Note - this goes way beyond the errata published on the O'Reilly site.)
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



Inside This Book (learn more)
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
syntax issues, new language features, action listener, conditional compilation, practical reflection, invalid point, linked list, runtime exception, bank data model, other code working, static nested classes, bit field constants, final int value, public final static void, final double radius, public void meth, constant object class, public static final void, runtime type safety, invocation handler, unchecked call, static proxies, nested interfaces, soft references, counting proxy
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Online Only Bank, Data Modeling, The Final Story, Four Flavors, Our Proxy, Reusable Data Constraints, Virtual Machine Root, Using Wrappers, Using Primitives, Two Kinds of Proxies, Hardcore Java, All About Constants Example, Collection Gotchas, Predictable Iteration, Aspects of Well-Designed Data Models, Operation Completed, Applying Reflection, Nested Classes Example, Anonymous Demo, Practical Applications, Access Issues, Inner Class Demo, External Transfer of Funds, Exceptional Traps, Stable Code
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Back Cover | Surprise Me!
Search Inside This Book:

What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(1)
(1)
(1)

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject