This is a very good question: why should a reader buy "Beginning Java 8" series, not other books? While it is not possible for me to mention all topics that make these books unique, I will try to put some of them here:
1. I am a developer and I understand the needs of other developers. I understand how programming is done and how one should learn a programming language to use it effectively. "The author being a developer" in itself should not qualify these books to be purchased and read. However, this will help readers understand why I laid out the contents the way I did and why I discuss some topics that are not discussed in other Java books.
2. While writing these books, I had in mind the Java certification exams and job interviews. In certification exams, you are supposed to know the fundamentals of the Java programming language whereas, in interviews, you must be able to define terms in a couple of sentences and explain the conceptual topics in greater details. You will find these things in my writings on every topic.
3. The series is titled "Beginning Java 8" that simply means it is meant for them who want to start learning Java. It does not mean that readers should buy few more books to start using Java at work. I start every chapter with a question "What is Xxx?", define Xxx, and give at least one complete example. The chapter keeps building the concept on the topic until the advanced features on the topic are discussed.
4. Throughout the book, I have kept the code for examples as brief as possible. You will seldom see a 2- to-3 page of program in my books. Every part of the program, containing just a few lines of code (1 to 5 lines) at a time, is discussed and, at the end, a complete program is presented. This approach keeps the reader absorbed in the topic being discussed.
5. Chapter 1 in "Beginning Java 8 Fundamentals" discusses object-oriented concepts like abstraction and polymorphism. You will not find abstraction and polymorphism discussed in such a great details in any other Java book. I consider these concepts essential for being a good programmer. They are often asked in job interviews as well. I have asked many candidates in interviews to defined all types of polymorphisms with examples; most of the time, I get an answer "polymorphism" means "many forms" such as method overloading. They answer like this because this is the only they get from Java books. Reading just the first chapter will give readers a clear understanding of OO basics.
6. Chapter 2 in "Beginning Java 8 Fundamentals" is especially written for readers who are learning Java for the first time. Other books start with a Hello world program, write a few sentences about compiling, and running the code, and the chapter ends. This book starts with just one line of code and keeps adding a keyword or a line until the whole program is written – explaining each and every word along the way. As a developer, I found that a solid concept of CLASSPATH is essential in debugging Java applications. It is true that IDEs like NetBeans make it easy to set CLASSPATH, but you need to know how CLASSPATH works to troubleshoot issues related to CLASSPATH. This chapter provides a detailed explanation with examples of how to work with CLASSPATH. The chapter ends with a short tutorial of the NetBeans IDE to the write the same program that was previous hand-written.
7. The "Beginning Java 8 Fundamentals" book discusses how floating-point numbers are stored internally. It discusses underflow, overflow and exception mechanisms used in floating-point number handling. You will not find these topics in other Java books.
8. While every Java book mentions the parameter passing mechanisms in Java, chapter 6 in "Beginning Java 8 Fundamentals" discusses the parameter passing mechanism in general and then in Java. I have spent 25 pages on this topic that use diagrams at every step to explain several types of parameter passing mechanisms. No other Java books that I know of covers this topic in such detail.
9. Chapter 7 in "Beginning Java 8 Fundamentals" covers the complete discussion on objects covering hash codes, equality, and immutability. The discussion on immutability is again unmatched.
10. Chapter 12 in "Beginning Java 8 Fundamentals" covers new Date and Time API in Java 8 in 84 pages. I have seen most of the books that are solely devoted to Java 8 features cover this topic in 2 to 10 pages. This chapter covers all features of the new Date and Time API. As a bonus, I have discussed the evolution of timekeeping that help understand different date and time related terms. I had to research on time and its evolution. I read over 500 pages (several thesis and research papers by many scholars) to write a few pages in this chapter. I went through that pain because I want to give additional information to readers that help them understand the topic better. You will not find this kind of information in any Java books.
11. All Java books discuss arrays, nut none of them say anything about the length property of array, except that it is the number of elements in arrays. Where is the length of an array actually stored? My book provides this information in details. Garbage collection has a separate chapter in the book.
12. Enums are discussed in very detail. You will not find such discussion in any Java books at one place.
13. Chapter 1 in "Beginning Java 8 Language Features" discusses annotations. You will find the same discussion in other books, except that they do not discuss how to write annotation processor. That is, how to process annotations when you are compiling the source code. This chapter provides a complete example on annotation processing.
14. "Beginning Java 8 Language Features" contains four chapters on Java I/O discussing all types of topics from working with files, archive files, new I/O and New I/O 2. This is again unique to this book.
15. "Beginning Java APIs, Extensions and Libraries" covers an introduction to JavaFX in 90 pages and Nashorn scripting engine in 95 pages that are also unique to this book. JNI is covered in detail with examples of how to write C++ code and compile it into a dynamic library on Windows and Linux. Topics like how to create a JVM in C++ code is discussed with an example.
In the end, I would like to suggest readers perusing my books in Google Books, before buying them. My books will certainly help you learn Java; more impotently, you will not need several Java books to learn Java. The three books contain everything you need to become a Java programmer.
Sorry for delay in response.
Thanks for writing the post in such details.
After reading this description, I must say I quite tempted to read your book.
Hope I win the book so that I can read and enhance my knowledge.
Happy Learning !!
Yes, of course, and I accept that blame. In fact, i covet that blame. As does this tiny ad: