- Last Updated on 31 May 2013
Books have been valuable friends of people for a long time. As a Java developer, you need such good friends also. However, there are thousands of books in the market today, so which one should I pick for myself? - You may ask. Yep, there is a plenty of choices huh? But don’t worry, man! In this article we compile some of the best and most popular books in Java programming that could help you boost your Java programming experience and your career.
Notice that almost of the books listed below is for beginners in Java and Core Java, not for beginners in computer programming. They assume you have some programming experience (preferred C or C++) before. This review includes the following titles:
Published Date: May 08th 2008
Paperback: 346 pages
Content Coverage: Objects; Classes and Interfaces; Generics; Enums and Annotations; Methods; General Programming; Exceptions; Concurrency; Serialization.
“I sure wish I had this book ten years ago. Some might think that I don’t need any Java books, but I need this one.”
- James Gosling, father of the Java programming language.
Perhaps this is one of the most recommended books for every Java developer who wants to master the Java language effectively. This book is not for beginners, rather it assumes that the readers having some experience in Java programming to understand the content. It does not teach you how to code but how to write code correctly and efficiently.
The author - Joshua, who is a senior Java architect and was designing various features of the Java platform - shares his profound knowledge by suggesting the best Java programming practices throughout 78 rules, from creating and destroying objects; what are the trade-offs between classic for loop and for-each loop; to implementing Serializable interface judiciously. The book covers traps and pitfalls in almost aspects of the core of the Java language, so the developers can understand and know how to avoid them to write better code. In addition, succinct code examples and explanatory arguments help readers absorbing the content effectively.
If you are a serious Java developer, this book is highly recommended and deserved having a place in your bookshelf.
Publisher: Prentice Hall
Published Date: Feb 26th 2006
Paperback: 1,150 pages
Content coverage: Update to Java SE 6, including: Core language concepts; OOP; Annotations; Collections; Generics; Enumerations; I/O; Concurrency; Exception handling and Swing.
Add-ons: Downloadable source code on its website; Hands-On Java CD (trial demo and buy from the website).
Pros: Good for beginners; Well-organized content; In-depth explanation style (sometimes too verbose).
Cons: Code snippets are somewhat hard to read because lack of new lines to separate the code.
Whether you are absolutely new to Java, or an experienced Java developer, you also will find this book a useful learning material.
For beginners in Java, you will find it’s easier and faster to learn the language if you had some background in C/C++ before. If not, don’t worry, as the author carefully explains every step to ensure you really understand the language. And you will be wading through the OOP concepts in Java gradually.
Experienced guys will find this book a guide to understand the language deeply, as the author not only teaching the basic but also covering the language features in depth.
For those who just want to grasp new features of Java SE5 and Java SE6, this book is also a good reference. And for folks who are eager to build GUI-based applications with Java, this book has a dedicated section for Swing and SWT.
To conclude, this huge-sized book (1,150 pages) is worth reading and being on your desk.
Publisher: O'Reilly Media
Published Date: Feb 9th 2005
Paperback: 688 pages
Content coverage: Core language features; OOP; Collections and Generics; Exception handling; Serialization and I/O; Networking sockets and multithreading; Swing (intro, event handling, layout managers and components); RMI; Package and deployment.
If you are kind of a person who feels difficult to learn new things by reading textbook, and are looking for new way to learn. Think again and look no further! This funny, humorous and sometimes even crazy style of book makes it standing out from others. You will find learning Java fun and exciting rather than drying, boring and tired like other programming books.
According to the authors, this book is designed and written based on the latest research on how human brain works, e.g. our brain learns new thing more efficiently with attracting images, graphics, diagrams, stories and conversations, etc. In addition, doing physical activities would help our brain to memorize things better.
Perhaps the most interesting thing while reading this book is that, it walks you through a journey of building a MIDI music player and a chat room in which players can share their songs with others. During this journey you will gradually learn exception handling, Swing GUI, event handling, inner classes, layout managers, serialization and I/O, networking sockets and multithreading. That would make you feel learning is easy, exciting and a lot of fun. You will love the diversity ways which the authors deliver knowledge to their readers, including:
- There are no dumb questions: questions and answers in conversational style that helps clearing out doubts and misunderstandings.
- Bullet points: summarize important points.
- Brain barbell, Brain Power: stick your brain with interesting questions.
The book also provides a plenty kind of exercises & puzzles which you never feel boring when doing your homework. They are: Pool puzzle, Sharpen your pencil, Code magnets, True of False, Crosswords, Who Am I, Be the compiler, Code Fragments.
Although this book covers only Java SE 5.0, it’s still extremely helpful for every Java fresher. Hope the authors will release new version for current Java SE version (Java 7) soon.
Publisher: O'Reilly Media
Published date: Oct 24th 2006
Paperback: 286 pages
Generics: Introduction, Subtyping and Wildcards, Comparison and Bounds, Declarations, Reification, Reflection, Effective Generics, Design Patterns; Collections: Main Interfaces, Collection Interface, Sets, Queues, Lists, Maps, The Collection class.
This comprehensive book will help you to understand Java Generics and Collections from basics to advance. We know that Collections was included in the early days of Java, while Generics has just been added to the language since Java 5, so for many ones, Generics would be an unfamiliar term which needs to be understood and used properly.
Throughout this book, the author - whose work contributed to the basics of generics in Java, will walk you step-by-step into a journey from Generics to Collections. To warm up, you will be introduced with some quick generics examples, and some fundamental stuff to understand Generics & Collections such as Boxing and Unboxing, Foreach, Generic Methods and Varargs, and Assertions. When providing examples, the author creates two versions “before generics” and “after generics” so you can get a clear comparison.
One interesting point in the Generics part is that, the author covers how Generics affects and changes other parts of the language such as Reflection and Design patterns. The chapter “Effective Generics” is quite useful as it advices on how to use generics effectively in practical coding like Take care when calling legacy code, Use checked collections to enforce security.
The Collections part comes after the Generics. You will be warmed up with some preliminaries like The main interfaces of the Java Collections Framework, Iterable & Iterations, some mathematic stuff like Efficiency and the O-Notation (this would puzzle your head and you probably need to read again some times to really understand the math). Then the author will walk you through each kind of collections: Sets, Queues, Lists, and Maps with a quite interesting example: the to-do manager.
Finally, this book covers the java.util.Collections class which provides static methods that operate on collections such as sorting, shuffling, swapping,… elements in a collection, performing binary search on lists, making immutable and synchronized collections, and many other utility methods.
So if you are looking for everything about Generics and Collections to empower your Java skills, this book nicely fits your need.