<?xml version="1.0" encoding="UTF-8"?>
<GoodreadsResponse>
	<Request>
		<authentication>false</authentication>
		    <method><![CDATA[]]></method>
	</Request>
	
<book id="127930">
  <title><![CDATA[Effective Java(TM) Programming Language Guide (2nd Edition) (The Java Series)]]></title>
  <isbn><![CDATA[0321356683]]></isbn>
  <isbn13><![CDATA[9780321356680]]></isbn13>
  <work>
  <best-book-id type="integer">105099</best-book-id>
  <books-count type="integer">3</books-count>
  <default-description>Written for the working Java developer, Joshua Bloch's  &lt;I&gt;Effective Java Programming Language Guide&lt;/I&gt; provides a truly  useful set of over 50 best practices and tips for writing better Java  code. With plenty of advice from an indisputable expert in the field,  this title is sure to be an indispensable resource for anyone who wants  to get more out of their code.&lt;p&gt;As a veteran developer at Sun, the  author shares his considerable insight into the design choices made  over the years in Sun's own Java libraries (which the author  acknowledges haven't always been perfect). Based on his experience  working with Sun's best minds, the author provides a compilation of 57  tips for better Java code organized by category. Many of these ideas  will let you write more robust classes that better cooperate with  built-in Java APIs. Many of the tips make use of software patterns and  demonstrate an up-to-the-minute sense of what works best in today's  design. Each tip is clearly introduced and explained with code snippets  used to demonstrate each programming principle.&lt;p&gt;Early sections on  creating and destroying objects show you ways to make better use of  resources, including how to avoid duplicate objects. Next comes an  absolutely indispensable guide to implementing &quot;required&quot; methods for  custom classes. This material will help you write new classes that  cooperate with old ones (with advice on implementing essential  requirements like the &lt;I&gt;equals()&lt;/I&gt; and &lt;I&gt;hashCode()&lt;/I&gt;  methods).&lt;p&gt;The author has a lot to say about class design, whether  using inheritance or composition. Tips on designing methods show you  how to create understandable, maintainable, and robust classes that can  be easily reused by others on your team. Sections on mapping C code  (like structures, unions, and enumerated types) onto Java will help C  programmers bring their existing skills to Sun's new language. Later  sections delve into some general programming tips, like using  exceptions effectively. The book closes with advice on using threads  and synchronization techniques, plus some worthwhile advice on object  serialization.&lt;p&gt;Whatever your level of Java knowledge, this title can  make you a more effective programmer. Wisely written, yet never pompous  or doctrinaire, the author has succeeded in packaging some really  valuable nuggets of advice into a concise and very accessible guidebook  that arguably deserves a place on most any developer's bookshelf.  &lt;I&gt;--Richard Dragan&lt;/I&gt; &lt;p&gt; &lt;B&gt;Topics covered:&lt;/B&gt; &lt;ul&gt; &lt;li&gt;Best practices and tips for Java &lt;li&gt;Creating and destroying objects (static factory methods,  singletons, avoiding duplicate objects and finalizers) &lt;li&gt;Required methods for custom classes (overriding &lt;I&gt;equals()&lt;/I&gt;,  &lt;I&gt;hashCode()&lt;/I&gt;, &lt;I&gt;toString()&lt;/I&gt;, &lt;I&gt;clone()&lt;/I&gt;, and  &lt;I&gt;compareTo()&lt;/I&gt; properly) &lt;li&gt;Hints for class and interface design (minimizing class and member  accessibility, immutability, composition versus inheritance, interfaces  versus abstract classes, preventing subclassing, static versus  nonstatic classes) &lt;li&gt;C constructs in Java (structures, unions, enumerated types, and  function pointers in Java) &lt;li&gt;Tips for designing methods (parameter validation, defensive copies,  method signatures, method overloading, zero-length arrays, hints for  Javadoc comments) &lt;li&gt;General programming advice (local variable scope, using Java API  libraries, avoiding &lt;I&gt;float&lt;/I&gt; and &lt;I&gt;double&lt;/I&gt; for exact  comparisons, when to avoid strings, string concatenation, interfaces  and reflection, avoid native methods, optimizing hints, naming  conventions) &lt;li&gt;Programming with exceptions (checked versus run-time exceptions,  standard exceptions, documenting exceptions, failure-capture  information, failure atomicity) &lt;li&gt;Threading and multitasking (synchronization and scheduling hints,  thread safety, avoiding thread groups) &lt;li&gt;Serialization (when to implement &lt;I&gt;Serializable&lt;/I&gt;, the  &lt;I&gt;readObject()&lt;/I&gt;, and &lt;I&gt;readResolve()&lt;/I&gt; methods) &lt;/ul&gt;</default-description>
  <id type="integer">101316</id>
  <media-type nil="true"></media-type>
  <original-language-id type="integer" nil="true"></original-language-id>
  <original-publication-day type="integer">13</original-publication-day>
  <original-publication-month type="integer">6</original-publication-month>
  <original-publication-year type="integer">2001</original-publication-year>
  <original-title>Effective Java Programming Language Guide</original-title>
  <rating-dist>total:121|5:71|4:37|3:11|2:1|1:1|</rating-dist>
  <ratings-count type="integer">121</ratings-count>
  <ratings-sum type="integer">539</ratings-sum>
  <reviews-count type="integer">220</reviews-count>
  <text-reviews-count type="integer">27</text-reviews-count>
</work>

  <average_rating><![CDATA[4.45]]></average_rating>
  <ratings_count><![CDATA[17]]></ratings_count>
  <text_reviews_count><![CDATA[8]]></text_reviews_count>
  <url><![CDATA[http://www.goodreads.com/book/show/127930.Effective_Java]]></url>
  <authors>
        <author id="60805">
      <name><![CDATA[Joshua Bloch]]></name>
      <role><![CDATA[]]></role>
      <url><![CDATA[http://www.goodreads.com/author/show/60805.Joshua_Bloch]]></url>
      <average_rating><![CDATA[4.41]]></average_rating>
      <ratings_count><![CDATA[170]]></ratings_count>
      <text_reviews_count><![CDATA[37]]></text_reviews_count>
    </author>
      </authors>
  <reviews start="1" end="20" total="220">
    <review id="6467632">
  <user id="266149">
    <name><![CDATA[Fogus]]></name>
    <location><![CDATA[Washington, DC]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/266149-fogus?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>1</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="2009_read" />
        <shelf name="favorites" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Thu Mar 01 00:00:00 -0800 2007</read_at>
  <date_added>Wed Sep 19 18:55:55 -0700 2007</date_added>
  <date_updated>Thu Apr 16 05:54:53 -0700 2009</date_updated>
  <read_count>2</read_count>
    <body><![CDATA[Although it is a bit outdated, 90% of the book contains great advise for any Java programmer.  If you have not read this then you <strong>do not</strong> know how to program Java.<br/>-m<br/>]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/6467632?utm_medium=api]]></url>
</review>
    <review id="68747001">
  <user id="2545473">
    <name><![CDATA[Andrea]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2545473-andrea?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Mon Aug 24 00:00:00 -0700 2009</read_at>
  <date_added>Mon Aug 24 16:42:36 -0700 2009</date_added>
  <date_updated>Mon Aug 24 20:18:14 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Lots of helpful advice and considerations for programming in Java as well as programming in general.  Programmers experienced in other OOP languages will probably find some of the advice rather obvious, but still, plenty of Java-specific ideas to justify the purchase price.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/68747001?utm_medium=api]]></url>
</review>
    <review id="71839000">
  <user id="1236126">
    <name><![CDATA[Ryanjustus]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1236126-ryanjustus?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Sat Sep 19 00:00:00 -0700 2009</read_at>
  <date_added>Sat Sep 19 21:10:07 -0700 2009</date_added>
  <date_updated>Sat Sep 19 21:16:11 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Amazing book that I would recommend every Java developer have in his library.  This book covers the best practices aspects of programming Java that are pretty hard to pick up without years and years of trial and error and seeing what works best.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/71839000?utm_medium=api]]></url>
</review>
    <review id="74888191">
  <user id="1843661">
    <name><![CDATA[Serena]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1843661-serena-phychembiomath-com?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>true</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Sat Oct 17 22:31:45 -0700 2009</date_added>
  <date_updated>Sat Oct 17 22:31:52 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[<br/>Very good college reference textbook<br/><br/>From<br/><br/><a rel="nofollow" target="_blank" href="http://www.cocomartini.com">UNIVERSITY Textbook</a> <a rel="nofollow" target="_blank" href="http://www.cocomartini.com">COLLEGE Textbooks</a> <a rel="nofollow" target="_blank" href="http://www.cocomartini.com">ONLINE Bookstore</a><br/>:<br/>:<br/>]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/74888191?utm_medium=api]]></url>
</review>
    <review id="57547615">
  <user id="1296368">
    <name><![CDATA[David]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1296368-david-chwalisz?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="reference" />
        <shelf name="technical" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Fri Aug 01 00:00:00 -0700 2008</read_at>
  <date_added>Wed May 27 16:52:00 -0700 2009</date_added>
  <date_updated>Wed May 27 16:53:56 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Java Programmer? Read it!<br/><br/>Good stuff on interfaces and singletons. Too much to absorb in one reading, really. Then try to convince your co-workers to actually use some of it. That is the really hard part!]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/57547615?utm_medium=api]]></url>
</review>
    <review id="58539393">
  <user id="2385694">
    <name><![CDATA[Owen]]></name>
    <location><![CDATA[London, H9, The United Kingdom]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2385694-owen-lindsell?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>1</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="currently-reading" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Wed Apr 01 00:00:00 -0700 2009</read_at>
  <date_added>Fri Jun 05 09:12:57 -0700 2009</date_added>
  <date_updated>Fri Jun 05 10:28:21 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Points out loads of really important pitfalls that you really should know if you want to write quality code. In a style that's informative and enjoyable.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/58539393?utm_medium=api]]></url>
</review>
    <review id="28060525">
  <user id="977766">
    <name><![CDATA[terababy]]></name>
    <location><![CDATA[Beijing, China]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/977766-terababy?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="effective" />
        <shelf name="java" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Thu Jul 24 00:00:00 -0700 2008</read_at>
  <date_added>Wed Jul 23 10:07:58 -0700 2008</date_added>
  <date_updated>Wed Jul 23 10:30:08 -0700 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[I read the first edition of this book on 2002, when I was doing a lot of work in Java 1.4. I've been out of the Java world for awhile, and the second edition is really helping to remind me of best practices. Bloch has updated to cover new language features added in Java 5, such as the enum type, ann...<a href="http://www.goodreads.com/review/show/28060525">more...</a>]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/28060525?utm_medium=api]]></url>
</review>
    <review id="77241890">
  <user id="887552">
    <name><![CDATA[Prashanth]]></name>
    <location><![CDATA[Germany]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/887552-prashanth?utm_medium=api]]></url>
  </user>
    <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Mon Nov 09 14:34:03 -0800 2009</date_added>
  <date_updated>Mon Nov 09 14:34:24 -0800 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Good book for the java developers.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/77241890?utm_medium=api]]></url>
</review>
    <review id="68137030">
  <user id="1233803">
    <name><![CDATA[Dave]]></name>
    <location><![CDATA[Ann Arbor, MI]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1233803-dave?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Wed Aug 19 21:38:45 -0700 2009</date_added>
  <date_updated>Wed Aug 19 21:39:07 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Essential Java reading.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/68137030?utm_medium=api]]></url>
</review>
    <review id="73368381">
  <user id="2779986">
    <name><![CDATA[Tim]]></name>
    <location><![CDATA[Ankeny, IA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2779986-tim-andersen?utm_medium=api]]></url>
  </user>
    <rating>3</rating>
  <votes>0</votes>
  <sell_flag>true</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="programming" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Sun Jan 01 00:00:00 -0800 2006</read_at>
  <date_added>Sat Oct 03 20:42:50 -0700 2009</date_added>
  <date_updated>Sat Oct 03 20:43:58 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Very thorough.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/73368381?utm_medium=api]]></url>
</review>
    <review id="26049692">
  <user id="1235528">
    <name><![CDATA[Gregory]]></name>
    <location><![CDATA[Redwood City, CA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1235528-gregory?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Wed Jul 09 00:00:00 -0700 2008</read_at>
  <date_added>Tue Jul 01 14:50:34 -0700 2008</date_added>
  <date_updated>Wed Jul 09 18:48:38 -0700 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[This is the second edition of Effective Java, which Bloch has updated to cover new language features added in Java 5, such as the enum type, annotations, and generics. I can't top the praise that luminaries in the Java worlds have heaped upon the first edition of this book; see the back cover for a ...<a href="http://www.goodreads.com/review/show/26049692">more...</a>]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/26049692?utm_medium=api]]></url>
</review>
    <review id="26707132">
  <user id="1257809">
    <name><![CDATA[Eric]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1257809-eric?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Tue Jul 01 00:00:00 -0700 2008</read_at>
  <date_added>Tue Jul 08 18:51:32 -0700 2008</date_added>
  <date_updated>Sun Jan 04 18:08:20 -0800 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[I read the first edition of this book many moons ago, back when I was doing a lot of work in Java 1.4.  I've been out of the Java world for awhile, and the second edition is really helping to remind me of best practices, and particularly how some of those best practices have evolved with the new fea...<a href="http://www.goodreads.com/review/show/26707132">more...</a>]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/26707132?utm_medium=api]]></url>
</review>
    <review id="36787510">
  <user id="143">
    <name><![CDATA[Maciek]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/143-maciek?utm_medium=api]]></url>
  </user>
    <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Fri Mar 13 00:00:00 -0700 2009</read_at>
  <date_added>Sun Nov 02 18:09:39 -0800 2008</date_added>
  <date_updated>Mon Apr 06 20:36:14 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[Apparently, inheritance is the devil's work. That, and the clone() method and contract is completely insane. Other than that, there's really nothing revelatory here, but it's interesting and well written, and certainly worth reading if you write Java.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/36787510?utm_medium=api]]></url>
</review>
    <review id="17219124">
  <user id="547407">
    <name><![CDATA[Clifford]]></name>
    <location><![CDATA[Gaithersburg, MD]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/547407-clifford?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="computerbooks" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Tue Jun 01 00:00:00 -0700 2004</read_at>
  <date_added>Fri Mar 07 04:08:49 -0800 2008</date_added>
  <date_updated>Fri Mar 07 04:10:06 -0800 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[This is a great book!  It's the quickest (and most painless) way to get a firm grip on common java &quot;idioms&quot; so that you'll program like a true Java jedi master.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/17219124?utm_medium=api]]></url>
</review>
    <review id="28703736">
  <user id="591373">
    <name><![CDATA[Chris]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/591373-chris?utm_medium=api]]></url>
  </user>
    <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Mon Nov 17 09:50:20 -0800 2008</read_at>
  <date_added>Tue Jul 29 21:13:27 -0700 2008</date_added>
  <date_updated>Mon Nov 17 09:50:20 -0800 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[Written for interface writers, but still has useful Java fundamentals. Joshua Bloch is one of my favorite writers; he is accurate and entertaining.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/28703736?utm_medium=api]]></url>
</review>
    <review id="25417172">
  <user id="1254107">
    <name><![CDATA[Russell]]></name>
    <location><![CDATA[Austin, TX]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1254107-russell-glasser?utm_medium=api]]></url>
  </user>
    <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Wed Jun 25 00:00:00 -0700 2008</read_at>
  <date_added>Wed Jun 25 08:59:08 -0700 2008</date_added>
  <date_updated>Wed Jun 25 08:59:31 -0700 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[I just borrowed this from a coworker.  I really enjoyed Scott Meyers' books, and this seems to be more good stuff in the same vein.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/25417172?utm_medium=api]]></url>
</review>
    <review id="21076095">
  <user id="61016">
    <name><![CDATA[epoophoron]]></name>
    <location><![CDATA[Carmichael, CA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/61016-epoophoron?utm_medium=api]]></url>
  </user>
    <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="tech-books" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Sat Jan 01 00:00:00 -0800 2005</read_at>
  <date_added>Sat Apr 26 22:58:22 -0700 2008</date_added>
  <date_updated>Sat Apr 26 22:58:22 -0700 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[Has a lot of good advice and tips to avoid bad programming practices. However, it's pretty dated now, since it is based on JDK 1.1.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/21076095?utm_medium=api]]></url>
</review>
    <review id="13377291">
  <user id="236382">
    <name><![CDATA[Darrick]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/236382-darrick?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="2" />
        <shelf name="2008" />
        <shelf name="paper" />
        <shelf name="technical" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Fri Feb 15 00:00:00 -0800 2008</read_at>
  <date_added>Thu Jan 24 06:52:09 -0800 2008</date_added>
  <date_updated>Fri Feb 15 08:40:40 -0800 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[This is just one of the books that every Java developer should read. Now I want to go back and revisit all my Java code!]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/13377291?utm_medium=api]]></url>
</review>
    <review id="31769600">
  <user id="1479229">
    <name><![CDATA[John]]></name>
    <location><![CDATA[The United Kingdom]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1479229-john-lewis?utm_medium=api]]></url>
  </user>
    <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Mon Sep 01 18:14:52 -0700 2008</date_added>
  <date_updated>Mon Sep 01 18:15:48 -0700 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[One of the best books so far on Java, but first you need to know the language and more.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/31769600?utm_medium=api]]></url>
</review>
    <review id="13893997">
  <user id="847284">
    <name><![CDATA[Michael]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/847284-michael?utm_medium=api]]></url>
  </user>
    <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="code" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Mon Jan 28 20:09:37 -0800 2008</date_added>
  <date_updated>Mon Jan 28 20:10:04 -0800 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[If you're going to code in Java, you must know the information in this book. End of story. ]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/13893997?utm_medium=api]]></url>
</review>
    </reviews>
</book>
</GoodreadsResponse>