Books on Java
We will categorize Java books into five categories:
NOTE: The list below is far from complete and is not intended
to be an endorsement of any particular collection of books.
If you know of a book that ought be there, send us an email.
- Fast-intro books: These books don't really "teach" programming
but are written for programmers or students with some programming
already under their belt. A good example is the Java in a Nutshell book
by D.Flanagan. Some of these books may be suitable for a 3rd-course
introduction to Java (such as the Jia or Winder books).
- Gentle intro books: These books teach Java from scratch at
a level appropriate to beginning programmers. They are usually
used as textbooks in intro computer science courses.
A good example is: Java, An Introduction to Computer Science
and Programming by W.Savitch (Prentice-Hall).
- 2nd course books: These books usually teach the second course
in a 2-course sequence and focus on topics like data structures.
A good example is: Data Structures and Other Objects using Java
by M.Main (Addison-Wesley).
- Advanced books: These books cover advanced material such
as the Java API, or are focused on special topics (such as Threads)
or cover software engineering (such as design patterns).
A good example is: Core Swing Advanced Programming by K.Topley
- AP Computer Science books:
These books are focused on the College Board AP Computer Science program.
So, which books should a beginner get? Theoretically, no book should be
needed given the wealth of resources online. However, most of us
like to have something to read if just to avoid looking at the
screen all the time. For beginners, the following
books might initially be best:
- A fast-intro book such as Java in a Nutshell (which is also inexpensive).
- A gentle-intro book - take your pick from below.
Java in a Nutshell, 3rd Edition
by David Flanagan (O'Reilly Pub.)
This book is a handy reference that contains a (rather terse)
overview of the language, tools and API's. Initially, a beginner will
find it difficult to read, but it's probably the only
book you will continue to use even after becoming a Java expert.
Core Java 2, Volume 1
by C.Horstmann and G.Cornell (Prentice-Hall).
This book, a introduction to Java for programmers, starts from
scratch, has plenty of examples and comparisons with other languages.
Volume 2 has advanced material.
Object-Oriented Software Development Using Java: Principles,
Patterns and Frameworks by X.Jia (Addison-Wesley).
After introducing Java, the book also covers design patterns
- Java with Object-Oriented Programming by P.Wang
(Thomson). Covers much of Java, requires some programming background.
- Object-Oriented Programming Featuring Graphical Applications
in Java by M.Laszlo (Addison-Wesley). Covers objects,
design patterns and frameworks.
- Understanding Object-Oriented Programming with Java
by T.Budd (Addison-Wesley).
- Just Java by P. van der Linden (Prentice-Hall).
Covers a wide variety of topics from XML to Beans. A rare
topic, regular expressions, is also covered using Java Grep.
- Java By Example by J.R.Jackson and A.L.McClellan
- Java Programming Advanced Topics by J.Wigglesworth and
P.Lumby (Thomson). Broad introduction with examples for programmers.
Also covers some advanced topics such as beans.
- Developing Java Software by R.Winder and G.Roberts.
Software engineering perspective. Unique in that it goes through
the gory details of a few substantial applications.
- Prelude to Patterns in Computer Science Using Java
by E.C.Epp (Franklin-Beedle). This book is hard to categorize:
it covers some introductory Java and yet is not really aimed
at intro courses. Probably best suited for a third programming
course in a sequence where the first two are not in Java.
Introduces design patterns.
- Java: How to Program by H.Deitel and P.Deitel
(Prentice-Hall). Covers both introductory and advanced material.
- Java from the Beginning by J.Skansholm (Addison-Wesley).
Covers both intro material, GUI's and streams/networking.
- Java: An Introduction to Computer Science and Programming
(3rd Ed) by W.Savitch (Prentice-Hall).
A popular first-course book that, at 900 pages, covers a lot of
material for a first-course.
The approach is traditional: objects are covered later, followed
even later by GUI's.
- Object-Oriented Problem Solving: Java, Java, Java
by R.Morelli (Prentice-Hall).
Apart from covering first-course material, there are also chapters
on second-course material. The book takes an "objects-first"
approach, starting early with objects as well as GUI's.
- Java: An Object-Oriented Approach by D.Arnow
and G.Weiss (Addison-Wesley). This book takes the objects-first
approach but separates GUI programming as optional supplemental
material in each chapter.
- Objects First with Java: A Practical Introduction Using
BlueJ by D.Barnes and M.Kolling (Prentice-Hall).
As the title indicates, the book is for a first-course that takes
an objects-first approach. The book is also tied to the BlueJ
- Object-Oriented Application Development Using Java
by E.R.Doke, J.W.Satzinger and S.R.Williams (Thomson Learning).
Takes an objects-first approach.
- Java: A Framework for Programming and Problem Solving
by K.Lambert and M.Osborne (Brooks/Cole).
This book takes a more-or-less objects-first approach but postpones
GUI's until covering some elementary Java. A balance between
GUI-first and GUI-later.
- Java Programming, 2nd Edition by J.Farrell (Thomson).
Objects-first, GUI-first approach. Many examples in tutorial style.
- The Object of Java: Introduction to Programming Using
Software Engineering Principles by D.Riley (Addison-Wesley).
A good example of the direct objects-first, GUI-first approach.
Starts immediately with a graphical, call-methods-in-objects approach.
Follows up with a second-course book (see below).
- An Introduction to Programming and Object-Oriented Design
Using Java by J.Nino and F.A.Hosch (Wiley).
- Introduction to Java and Software Design by
N.Dale, C.Weems and M.Headington (Jones and Bartlett).
Objects-first, GUI-first. A Java version of their popular
- Object-Oriented Programming with Java by B.J.Holmes
and D.T.Joyce (Jones and Bartlett).
An objects-first, GUI-first approach using their custom AVI classes.
- Java by Dissection by I.Pohl and C.McDowell
- Introduction to Programming Using Java
by D.Arnow, S.Dexter and G.Weiss (Addison-Wesley).
An objects-early approach, with supplemental GUI material.
- Data Structures and Other Objects Using Java
by M.Main (Addison-Wesley). Solid coverage of APCS-AB material.
This is the text we use at GW for our second course.
- The Object of Data Abstraction and Structures Using Java
by D.Riley (Addison-Wesley).
Standard second-course material following his first-course text
that is objects-first, GUI-first.
Note: The advanced books listed above do not even scratch the
surface of what is available. There is, for example, an entire series
of books on Java by
O'Reilly Publishing that cover various special
topics such as threads, concurrent programming, servlets and the like.
- Core Java 2, Volume 2
by C.Horstmann and G.Cornell (Prentice-Hall).
Volume 2 covers threads, networking, JDBC, beans and security.
- Advanced Java: Internet Applications
by A.Gittleman (Scott Jones).
Covers a broad range of advanced topics from JDBC, servlets
and JSP to Java2D and beans.
- Advanced Java: Development for Enterprise Applications
by C.Berg (Prentice-Hall). Emphasises server-side stuff: beans,
- Java Design Patterns: A Tutorial by J.W.Cooper
(Addison-Wesley). Concise introduction to design patterns in Java.
- Patterns in Java, Vols. 1 and 2 by M.Grand
(Wiley). Catalogue of design patterns with UML.
- Core Swing Advanced Programming by K.Topley
(Prentice-Hall). What the title says it is.
- Practical Java: Programming Language Guide
by P.Haggar. Tips for advanced programmers.
- HardCore Java by R.Simmons (O'Reilly Pub.).
Useful and esoteris odds and ends.
AP Computer Science books:
- J.Lewis, W.Loftus, C.Cocking, S.Horwitz.
Java Software Solutions for AP Computer Science.
- S.Horwitz. Addison-Wesley's Review for the AP Computer Science
Exam in Java (Addison-Wesley).
- M.Litvin and G.Litvin.
Java Methods and Java Methods (AB).
- M.Litvin. Be Prepared for the AP Computer Science Exam in Java.
- T.West and C.Stephenson. Java for AP Computer Science
(Holt Software Associates).
Links to reviews on Java books: