The Definitive Java Programming Guide
Fully updated for Java SE 8, Java: The Complete Reference, Ninth Edition explains how to develop, compile, debug, and run Java programs. Bestselling programming author Herb Schildt covers the entire Java language, including its syntax, keywords, and fundamental programming principles, as well as significant portions of the Java API library. JavaBeans, servlets, applets, and Swing are examined and real-world examples demonstrate Java in action. New Java SE 8 features such as lambda expressions, the stream library, and the default interface method are discussed in detail. This Oracle Press resource also offers a solid introduction to JavaFX.
- Data types, variables, arrays, and operators
- Control statements
- Classes, objects, and methods
- Method overloading and overriding
- Interfaces and packages
- Exception handling
- Multithreaded programming
- Enumerations, autoboxing, and annotations
- The I/O classes
- Lambda expressions
- String handling
- The Collections Framework
- Event handling
- AWT and Swing
- The Concurrent API
- The Stream API
- Regular expressions
- Applets and servlets
- Much, much more
Most helpful customer reviews
89 of 96 people found the following review helpful.
Too big and at the same time too shallow for a reference
By Constantine Kulak
The first impression after reading this book for one day -- it is definitely not a complete reference. Many important points are covered too shallow.
For example, while discussing Properties, the author mentions that this API is sort of obsolete, but he doesn't mention Preferences. In fact, Preferences are not mentioned at all (at least I couldn't find it in the Index). Another example -- StringTokenizer class, for which the author dedicates two pages, but doesn't mention how it is different from String.split, e.g. from the performance point of view. There are javadocs for ArrayList, but it doesn't say how it grows and when it shrinks. I was unable to find some of the important contracts, e.g. what has the higher priority for a TreeSet -- Comparator's 0, or element's equals returning false? Those are rather trivial questions, naturally appearing while reading the book, but unfortunately you'll have to google for it. The author provides virtually no hints about the implementation of the library and the language, which I believe is essential for understanding most of the design decisions. This is absolutely unacceptable for a reference book.
There are two other annoying things:
1. The book is full of Javadocs, I would say 1/3 of the book is Oracle javadocs, which I personally find rather useless. It looks like something completely artificial, added just to extend this (already enormous) volume.
2. The book is very thick, while the binding and cover are very soft and unsubstantial. It had some signs of wear already after one day of reading! If you use this book regularly as a reference, it will wear out very soon.
Having said that, I must mention that some of the topics are covered well, concise and right to the point. For example, I like the way author incorporated new Java 8 language features throughout the whole book. For instance, you will find lambdas and new collection features used regularly in examples. In general, I've got an impression that "Java Language" section is written better than "The Java Library" one.
Finally, it is hard to understand the point of this book -- it is far too huge to be read linearly, and it is not deep enough to serve as a reference. Probably, the best uses for it would be to remind some of the core language and library concepts, and also to learn new features of Java 8.
2 of 2 people found the following review helpful.
Outstanding book for beginning programmers, Java or otherwise ...
By Kelly Maurice
This is a fine book. It is useful both for programmers who are learning Java or even for non-programmers starting with their first language. The object-oriented elements of Java, general OO concepts are explained exceptionally well. I read this book from cover to cover to brush up on my rusty Java. Java, I learned, is very close to C++ (which is mostly what I have been familiar with) but designed for a different platform (the web, or other devices) and for portability.
If the reader can make it through the excellent examples on threading, inheritance and variables he/she will have made an important step towards being a programmer. I found almost not typos, always a good sign. The book has expansions of code snippets into full program listings which makes the book rather thick but I find this approach better than leaving a bunch of chopped up code fragments by themselves.
I'm looking forward to purchasing, reading & referencing the companion Java book by the same author.
326 of 361 people found the following review helpful.
See all 291 customer reviews...
Warning for beginners
By An Amazon Customer
Well, I hate to be the lone voice of dissent here, but I have major reservations about this book, in terms of the title's target audience.
1). First, it should have been titled "Beginning Java for Programmers". I say this as, for example, Ch 2 problem 10 requires a nested for loop. This is NOT something I would expect a beginner programmer to know, especially only in chapter TWO! Also, p36 refers to being able to do "all the old char tricks you know".
2). Chapter 2 also talks about primitives, typecasting. Typecasting is not something a beginner needs to know at only chapter 2.
3). The editing is poor. Page 65 shows a sample program listing. Turns out this is a completely different program than the downloaded source files.
4). The author (&/or Oracle) should not expect a beginner to learn the command line straightaway from chapter one. I also have the book "Java for Dummies", which is able to explain how to use the Eclipse IDE. Why can't Oracle? This is lazy, IMO.
I am giving this 3 stars overall, with a caveat. This is a 4-5 star book for a programmer who already can figure out the nuances, or if the book's code is wrong, & knows how to use Eclipse. However, a 1 star book for a real beginner who doesn't know any language & the command line. It would be a nightmare for a true beginner.