Now that we are in the 21st century, it is hard to imagine that Java-related books are so scarce, but this is just the case with Java. All the Java-related books were basically published by several Sun engineers, such as the "Hooked on Java" written by Arthur Van Hoff et.al and "The Java" written by Patrick Naughton. Handbook ".
Of course, these books fill the gaps in Java, but each book has 3, 400 pages, which assume that readers understand the program, especially object-oriented programming.
1996 Cay Horstmann and Gary Cornell published a book called "Java Core programming," which has more than 600 pages, and it does not make any assumptions to teach reader Java from the beginning, the book's style is clear and readable, and reminds us of the early Brian Kernighan with Patrick Henry Winston's programming course.
17 was fleeting, and Horstmann and Cornell published the 9th edition of Java Core programming. This edition is divided into two volumes, Volume 1 (Base) has 974 pages, Volume 2 (Advanced features) even reached 1128 pages. You can find everything in the book about Java 7 (the latest JDK version), including collections, generics, concurrency, and all of the features of Java since the first version of the JDK was released.
The new version of the writing style is still clear and readable, and provides a number of examples, although basic but important. Obviously, the authors have gone through a lot of thinking when creating these examples, and the examples are very detailed and provide a valuable reference for the reader. The book is flooded with "C + + annotations" designed to guide C + + programmers in Java.
Volume 1 first introduces the history of Java and the highest demands of language designers (robust, portable, multi-threaded, and so on). This is followed by a concise hands-on guide, which includes instructions for downloading and installing the Java language environment, including the JDK and Eclipse IDE. This section provides some reliable code examples where you can test the installation environment with some visual applets.
Then we introduce the most basic data types as well as syntax, program structure and control flow, and explain the BigNumber, BigDecimal and BigInteger in detail.
This column more highlights: http://www.bianceng.cn/Programming/Java/
After introducing the basics, the book begins with a detailed introduction to object-oriented programming (OOP). Programmers with a process background such as C will generally find it a difficult process to change to OO. Java Core Programming The book is doing a great job in this area. The discussion starts with some basic UML, intuitive examples, and classes and objects in Java. The next step continues into Java-style oo, including class files and construction methods. The chapter concludes with some "class design hints," which are best practices for creating good, readable, and reusable code.
The chapters that follow OO discussions begin with the introduction of inheritance, interfaces, and inner classes, and give the corresponding Java implementations.
The next 4 chapters have 300 pages on graphic programming, including major swing components, fonts, using colors, handling mouse and keyboard events, layout manager, applets, and deployment strategies such as browsers, Java Web start and jar files. I'm disappointed that JavaFX is not mentioned in the book because JavaFX is now part of the Java Core library and is used as an extension of swing.
The next chapter describes exception handling, which is clearly described here for debugging tips, logging, and how to use the debugger. The following chapter describes generics programming. Even experienced Java programmers have problems with this topic, but the process is very clear. This book also introduces the new diamond notation introduced in the Java 7 "Project Coin". The Java collections and maps are then introduced, including some algorithms, and a brief introduction to the old collections and maps, such as Hashtable, vector and enumeration.
The book ends with a 108-page overview of multithreading. This chapter begins with "What is a thread," then introduces "thread state", gives a nice statechart diagram, describes the transitions through "Synchronization", and discusses the race conditions. Next, we introduce the Java.util.concurrent components introduced in Java 5. It then introduces the executors and thread pool, the "Sync" component, and discusses the concept of swingworker by using threads to ensure the responsiveness of the swing UI.
I think it's a good decision to add a multithreaded chapter, and in the previous version the chapter was put in Volume 2. Concurrency is necessary for all important Java code and should not be considered an advanced feature. However, I am sorry to see that the chapters on streams and readers have been put in volume 2 because they are also the basis of the theme, Volume 2 was published this March.
Java has grown considerably since its first release in 1995, not only in terms of expression, but also in surrounding ecosystems. Java core programming is a lot of content, but it's very detailed, and there's no pressure to read, and it's a very good book for programmers, programmers from other languages, and even advanced Java developers who want to have a book on each topic that clearly shows the core of the Java kernel at hand.