What this book covers
Chapter 1, Understanding Java Distributions, presents a little history of the language, followed by how Java is distributed, downloaded, and installed for Windows, Linux, and macOS.
Chapter 2, Code, Compile, and Execute, prepares you to code, compile, and execute your first program. An IDE is not required, and you just need a text editor, and the latest version of Java installed on your PC.
Chapter 3, The Maven Build Tool, shows you how to manage programs that can consist of many files along with dependencies on external libraries is the purview of the Maven build tool.
Chapter 4, Language Fundamentals – Data Types and Variables, provides an introduction to what data types are available in Java and the operations we can perform on them.
Chapter 5, Language Fundamentals – Classes, introduces object-oriented programming as carried out in Java and revolves around the structure called a class.
Chapter 6, Methods, Interfaces, Records, and Their Relationships, examines the structures in which Java code is written. You will learn that classes have an interface, the public members of the class. An interface class enforces an interface, while a record represents an immutable data class. The relationships between classes are described.
Chapter 7, Java Syntax and Exceptions, introduces you to the low-level syntax of Java employed in methods, and what happens when things go wrong, an exception is thrown.
Chapter 8, Arrays, Collections, Generics, Functions, and Streams, examines how we process multiple data elements in Java using arrays and collections. Generics enhance type safety, functions enhance the processing of elements, and streams provide an alternative to loops for processing multiple items.
Chapter 9, Using Threads in Java, introduces you to one of Java’s greatest strengths, its inherent support of threads. The new threading approach called virtual threads is also examined.
Chapter 10, Implementing Software Design Principles and Patterns in Java, presents software design principles that provide guidance on how you construct your classes and how your objects should interact.
Chapter 11, Documentation and Logging, presents how you can document what a program does in the source code. Information about a program is shown while it is running using logging.
Chapter 12, BigDecimal and Unit Testing, demonstrates that when the accuracy of calculations, typically for currency, is required, then BigDecimal is the answer. Determining whether your program is delivering the correct results is the role of unit testing.
Chapter 13, Desktop Graphical User Interface Coding with Swing and JavaFX, presents the two Java graphical user interface (GUI) libraries, Swing and JavaFX, which support GUIs. You will see the same business logic presented using each library.
Chapter 14, Server-Side Coding with Jakarta, introduces you to backend web programming in Java. You will set up your application server and deploy Java code in the format of a servlet.
Chapter 15, Jakarta Faces Application, introduces you to server-side rendering of web pages. The application from Chapter 13, Desktop Graphical User Interface Coding with Swing and JavaFX, will now be presented as a Faces application.
Chapter 16, Deploying Java in Standalone Packages and Containers, shows we can distribute our applications. You will see how we can create installers for desktop programs and Docker containers for web applications commonly used for cloud deployment.