Java 9 for Programmers
Deitel Developer SeriesThe professional programmer’s Deitel® guide to Java® 9 and the powerful Java platform—Written for programmers with a background in another high-level language, this book applies the Deitel signature live-code approach to teaching programming and explores the Java® 9 language and APIs in depth. The book presents concepts in fully tested programs, complete with code walkthroughs, syntax shading, code highlighting and program outputs. It features hundreds of complete Java 9 programs with thousands of lines of proven code, and hundreds of software-development tips that will help you build robust applications.
Start with an introduction to Java using an early classes and objects approach, then rapidly move on to more advanced topics, including JavaFX GUI, graphics, animation and video, exception handling, lambdas, streams, functional interfaces, object serialization, concurrency, generics, generic collections, database with JDBC™ and JPA, and compelling new Java 9 features, such as the Java Platform Module System, interactive Java with JShell (for discovery, experimentation and rapid prototyping) and more. You’ll enjoy the Deitels’ classic treatment of object-oriented programming and the object-oriented design ATM case study, including a complete Java implementation. When you’re finished, you’ll have everything you need to build industrial-strength, object-oriented Java 9 applications.
Source Code
Not a GitHub user? Download the ZIP file
Preface
View the Preface to learn about the book’s approach and features
Table of Contents
View the full Table of Contents for each chapter’s coverage.
Buy the Book
Before You Begin
View the Before You Begin for info on setting up your environment.
JDK Diagram
Features
Java 9+ Features
- Java Platform Module System
- Interactive Java via JShell—Java’s REPL
- Collection Factory Methods, Matcher Methods, Stream Methods, JavaFX Updates, Using Modules in JShell, Completable Future Updates, Security Enhancements, Private Interface Methods and many other language and API updates.
Core Java Features
- Classes, Objects, Encapsulation, Inheritance, Polymorphism, Interfaces
- Composition vs. Inheritance, “Programming to an Interface not an Implementation”Lambdas, Sequential and Parallel Streams, Functional Interfaces with Default and Static Methods, Immutability
- JavaFX GUI, 2D and 3D Graphics, Animation, Video, CSS, Scene Builder
- Files, I/O Streams, XML Serialization
- Concurrency for Optimal Multi-Core Performance, JavaFX Concurrency APIs
- Generics and Generic Collections
- Recursion, Database (JDBC™ and JPA)
Reviewer Testimonials
“Content is expertly covered. Java 9 introduces modules—a major shake-up to the Java ecosystem that brings numerous benefits, but also new challenges, terminology and patterns. Developers moving to Java 9 must know how to interact with modules, and this book does an expert job at clearly introducing these concepts. The book also covers numerous other Java 8 and Java 9 features, such as JShell, lambda expressions and JavaFX improvements. With this knowledge, developers can realize massive productivity gains by benefiting from the state of the art in Java. I highly recommend this book to all professionals aiming to keep current with the very latest Java developments.”
—Jonathan Giles, Consulting Member of Technical Staff, Oracle
“Provides a thorough introduction to the JShell tool for discovery. Java 9 for Programmers takes full advantage of that with interesting exercises.”
—Robert Field, JShell Architect, Oracle
“Covers JavaFX functionality that makes it easy to create nice, active user interfaces. A great overview on how concurrency can help developers leverage multi-core processors.”
—Johan Vos, CTO, Cloud Products at Gluon, Java Champion
“The combination of theory, clear explanation and example code makes this both a great learning experience and an excellent reference that is useful for any developer to have close at hand. Provides a great overview of the Java Platform Module System! I particularly like the way you explained the importance of modularity. Code examples are sufficiently complex to be realistic, but simple enough to understand. Covers all the topics I expected to see on modularity (more actually, especially around visualizing dependencies).”
—Trisha Gee, JetBrains, Java Champion
“Nice job on JShell. The most recent changes to Java are by far the biggest evolutions to the language and the platform in over 20 years. The changes are complex and intriguing, but Paul and Harvey have distilled the concepts to an easily digestible form, with plenty of examples. This book is an incredible, comprehensive source for deeper learning of Java and its ecosystem.”
—Dr. Venkat Subramaniam, President, Agile Developer, Inc. and Instructional Professor, University of Houston
“Gives the benefit of the wisdom derived from many years of software development experience!”
—Edward F. Gehringer, North Carolina State University
“Great book for studying the world’s most popular programming language. Introduces good design practices and methodologies from the beginning. Excellent starting point for developing high-quality, robust Java applications. Really good, clear explanation of object-oriented programming fundamentals. Excellent polymorphism chapter. Introduces JavaFX, the great new way to develop client applications in Java—I like the use of Scene Builder to create GUIs with drag-and-drop design rather than by hand, which shows the way it should be done. Excellent generic collections chapter. Covers lambdas and streams well.”
—Simon Ritter, Oracle (now Deputy CTO at Azul Systems)
“Want to take your Java skills to the next level? This book is the ultimate guide. I’ve enjoyed and learned much from it. Every major Java feature is masterfully covered. This is more than a book—it’s a career-building program. I really enjoyed the Lambdas and Streams chapter.”
—Bruno Souza, President of SouJava (the Brazilian Java Society), Java Specialist at ToolsCloud, Java Champion and SouJava representative at the Java Community Process
“The change from Java 8 to Java 9 is an important one, and developers should be prepared. Covers the Java Platform Module System and its role in creating complex applications in large systems. It clearly describes the concepts of modules, dependencies and services. Clear code samples show how to leverage libraries composed of Java 9 modules and how to migrate existing code and libraries into the modularized world of Java 9. Brings the reader up to speed with what to expect as Java evolves.”
—Johan Vos, CTO, Cloud Products at Gluon, Java Champion
“Complete and approachable coverage of Java 9’s modularity, which will change how you develop—the book motivates it, clearly explains its details and provides complete, working code examples, emphasizing good practices. Updated to reflect the state-of-the-art in Java technologies. I especially like the superb chapter that covers JShell, one of the flagships of Java 9. It’s an invaluable discovery tool for learning and teaching Java with ease. Deep and crystal-clear explanations. Good job on JavaFX—the state-of-the-art Java GUI, graphics and multimedia technology. Makes learning generic collections enjoyable.”
—José Antonio González Seco, Consultant
“A very impressive treatment is given to many JavaFX concepts.”
—James L. Weaver, Java Champion, Co-author of Pro JavaFX 8
“OO design techniques are incorporated throughout. Great polymorphism and interface examples.”
—Sue McFarland Metzger, Villanova U.
“Excellent introduction to functional programming with lambdas and streams!“
—Manfred Riem, Java Champion
“I’m really impressed with the book’s quality—it makes difficult concepts very clear. A great job explaining APIs and patterns. Stackframes explanation helps developers understand what’s happening under the hood. Guiding the reader to avoid dangerous patterns is as important as explaining the correct syntax—great work! The reader is encouraged to think wisely and take a pragmatic approach, which I like very much. Great polymorphism chapter—helps the reader distinguish between abstract classes and interfaces with default methods. Good discussion of analyzing exception stack traces for debugging information. Very good introduction to hashtables. One of the best explanations of generics I’ve read. Clearly explains collections, and when and how they should be used for best performance. Excellent presentation of lambdas and streams. Clear introduction to JPA that will save developers from lots of boilerplate code—shows how to use JPA to perform relatively complex queries that span multiple database tables.”
—Johan Vos, CTO, Cloud Products at Gluon, Java Champion
“I really like the use of test classes to demonstrate functionality—this is good practice. You get a good feel for when you’d use lambdas and streams. Solid intro to JShell, with plenty of hands-on code to demo its features—this chapter taught me things and felt very valuable.”
—Trisha Gee, JetBrains, Java Champion
“You’ll be on your way to becoming a great Java programmer with this book.”
—Peter Pilgrim, Java Champion, Consultant
“Of immense value to practitioners of the object-oriented approach. Demystifies inheritance and polymorphism, and illustrates their use in getting elegant, simple and maintainable code. The OO design case study presents the object-oriented approach, from requirements to Java code.”
—Vinod Varma, Astro Infotech Private Limited
“The OOD ATM case study puts many concepts from previous chapters together in a plan for a large program, showing the object-oriented design process—the discussion of inheritance and polymorphism is especially good.”
—Susan Rodger, Duke University
“I wish I had this book when I was learning how to program! Good introduction to the software-engineering process. Fantastic book and reference. Provides great detail on the latest Java features including lambdas. The code examples make it easy to understand the concepts. GUI examples are very good.”
—Lance Andersen, Principal Member of the Technical Staff, Oracle
“I like the Employee polymorphism example and the clear definitions of regular expressions. Good introduction to collections and hashtable performance. Solid threading treatment.”
—Dr. Danny Coward, Oracle [now Principal Software Engineer at Liquid Robotics]
Share This Page