Java! Read all about it in these new developer books.

March 2, 2023 | 14 minute read
Alan Zeichick
Editor in Chief, Java Magazine
Text Size 100%:

Everything from Java 17 certification to Ben Evans’ latest Java in a Nutshell edition

Ready to gain more knowledge about Java? Are you looking for something to read during a lunch break or after work? Is your bedside table bare? Do you want to share the gift of Java knowledge with your colleagues or with aspiring developers? Check out the following recently published or forthcoming titles on a variety of Java-related topics. Excerpts from the publishers’ descriptions are provided here to give you a sense of what you can learn.

Certification

OCP Oracle Certified Professional Java SE 17 Developer (Exam 1Z0-829) Programmer’s GuideOCP Oracle Certified Professional Java SE 17 Developer (Exam 1Z0-829) Programmer's Guide

By Khalid A. Mughal, Vasily A. Strelnikov
Oracle Press, 1851 pages

This is a unique guide that combines a rigorous introduction to programming in Java with meticulous coverage of the Java SE 17 and Java SE 11 Developer exam objectives. Fully updated to reflect changes in the latest exams, it features an increased focus on analyzing code scenarios—not just individual language constructs. Each objective is thoroughly addressed, reflecting the latest features and APIs, as well as best practices for taking the exam. The only book anyone needs to study for Java SE 17 Developer or Java SE 11 Developer certification. Book features include:

  • Easy to find coverage of key topics relevant to each exam objective
  • An introduction to essential concepts in object-oriented programming (OOP) and functional-style programming
  • In-depth coverage of declarations, access control, operators, flow control, OOP techniques, lambda expressions, streams, modules, concurrency, Java I/O, key API classes and much more
  • Program output demonstrating expected results from complete Java programs
  • Unique diagrams to illustrate important concepts, such as Java I/O, modules, and streams
  • Extensive use of Unified Modeling Language (UML) to illustrate program design
  • Dozens of review questions with annotated answers to help prepare for the exam and a complete mock exam

Agile

Test-Driven Development with JavaTest-Driven Development with Java

By Alan Mellor
Packt Publishing, 348 pages

Test-driven development enables developers to craft well-designed code and prevent defects. It’s a simple yet powerful tool that helps you focus on your code design, while automatically checking that your code works correctly. Mastering TDD will enable you to effectively utilize design patterns and become a proficient software architect.

The book begins by explaining the basics of good code and bad code, bursting common myths, and why Test-driven development is crucial. You’ll then gradually move toward building a sample application using TDD, where you’ll apply the two key rhythms—red, green, refactor and arrange, act, assert. Next, you’ll learn how to bring external systems such as databases under control by using dependency inversion and test doubles.

As you advance, you’ll delve into advanced design techniques such as SOLID patterns, refactoring, and hexagonal architecture. You’ll also balance your use of fast, repeatable unit tests against integration tests using the test pyramid as a guide. The concluding chapters will show you how to implement TDD in real-world use cases and scenarios and develop a modern REST microservice backed by a database in Java 17.

By the end of this book, you’ll be thinking differently about how you design code for simplicity and how correctness can be baked in as you go.

Design patterns

Practical Design Patterns for Java DevelopersPractical Design Patterns for Java Developers

By Miroslav Wengner
Packt Publishing, 266 pages

Design patterns are proven solutions to standard problems in software design and development, allowing you to create reusable, flexible, and maintainable code. This book enables you to upskill by understanding popular patterns to evolve into a proficient software developer.

You’ll start by exploring the Java platform to understand and implement design patterns. Then, using various examples, you’ll create different types of vehicles or their parts to enable clarity in design pattern thinking, along with developing new vehicle instances using dedicated design patterns to make the process consistent.

As you progress, you’ll find out how to extend vehicle functionalities and keep the code base structure and behavior clean and shiny. Concurrency plays an important role in application design, and you’ll learn how to employ a such design patterns with the visualization of thread interaction. The concluding chapters will help you identify and understand anti-pattern utilization in the early stages of development to address refactoring smoothly.

The book covers the use of Java 17+ features such as pattern matching, switch cases, and instances of enhancements to enable productivity.

By the end of this book, you’ll have gained practical knowledge of design patterns in Java and be able to apply them to address common design problems.

Functional programming

A Functional Approach to JavaA Functional Approach to Java

By Ben Weidig
O’Reilly, 400 pages

Java developers usually tackle the complexity of software development through object-oriented programming (OOP). But not every problem is a good match for OOP. The functional programming (FP) paradigm offers you another approach to solving problems, and Java provides easy-to-grasp FP tools such as lambdas and streams. If you’re interested in applying FP concepts to your Java code, this book is for you.

Author Ben Weidig highlights different aspects of functional programming and shows you how to incorporate them in your code without going “fully functional.” You’ll learn how, when, and why to use FP concepts such as immutability and pure functions to write more concise, reasonable, and future-proof code. Many developers seek to expand their horizons by using OOP and FP together. It’s no longer either-or; it’s both.

In two parts, this book includes:

  • A Functional Approach: Get a high-level overview of functional programming, including the types already available to Java developers. Then explore different FP concepts and learn how to use them.
  • Real-World Problems, Patterns, and Recipes: Apply what you’ve learned in part one to the typical real-world problems you might encounter in your daily work.

Troubleshooting

Troubleshooting Java: Read, Debug, and Optimize JVM ApplicationsTroubleshooting Java: Read, Debug, and Optimize JVM Applications

By Laurențiu Spilcă
Manning Publications, 328 pages

Searching for bugs, detangling messy legacy code, or evaluating your codebase for new features sucks up much of a developer’s time. This book teaches code investigation techniques that will help you efficiently understand how Java apps work, how to optimize them, and how to fix the bugs that break them. You’ll go from the basics of debugging to advanced methods for locating problems in microservices architectures, and save yourself hours—or even days—of time. Each new technique is explained with lively illustrations and engaging real-world examples. You will learn how to:

  • Determine what code does the first time you see it
  • Expose code logic problems
  • Evaluate heap dumps to find memory leaks
  • Monitor CPU consumption to optimize execution
  • Use thread dumps to find and solve deadlocks
  • Easily follow a service-oriented or microservices system
  • Properly use logging to better understand Java app execution
  • Use Java debuggers efficiently

Spring

Learning Spring Boot 3.0, third editionLearning Spring Boot 3.0, third edition

By Greg L. Turnquist
Packt Publishing, 270 pages

Spring Boot 3 brings more than just the powerful ability to build secure web apps on top of a rock-solid database. It delivers new options for testing, deployment, Docker support, and native images for GraalVM, along with ways to squeeze out more efficient usage of existing resources.

This third edition of the bestseller starts off by helping you build a simple app, and then shows you how to secure, test, bundle, and deploy it to production. Next, you’ll familiarize yourself with the ability to go “native” and release using GraalVM. As you advance, you’ll explore reactive programming and get a taste of scalable web controllers and data operations. The book goes into detail about GraalVM native images and deployment, teaching you how to secure your application using both routes and method-based rules and enabling you to apply the lessons you’ve learned to any problem. If you want to gain a thorough understanding of building robust applications using the core functionality of Spring Boot, then this is the book for you.

By the end of this Spring Boot book, you’ll be able to build an entire suite of web applications using Spring Boot and deploy them to any platform you need.

Beginning Spring Boot 3: Build Dynamic Cloud-Native Java Applications and MicroservicesBeginning Spring Boot 3: Build Dynamic Cloud-Native Java Applications and Microservices

By K. Siva Prasad Reddy, Sai Upadhyayula
Apress, 450 pages

Learn the Spring Boot 3 micro framework and build your first Java-based cloud-native applications and microservices. Spring Boot is the lightweight, nimbler cousin to the bigger Spring Framework, with plenty of “bells and whistles.” This updated edition includes coverage of Spring Native, which will help you speed up your Spring Boot applications, as well as messaging with Spring Boot, Spring GraphQL, Spring Data JDBC and reactive relational database connectivity (R2DBC) with SQL.

This new edition also covers enhancements to actuator endpoints, MongoDB 4.0 support, layered JAR and WAR support, support to build OCI images using Cloud Native Build Packs, changes to the DataSource initialization mechanism, and how bean validation support has moved to a separate spring-boot-validation-starter module. This book will teach you how to work with relational and NoSQL databases for data accessibility using Spring Boot with Spring Data, how to persist data with the Java Persistence APIs (JPA), MyBatis, and much more. You’ll learn how to enhance your native cloud or web applications with other APIs such as REST and how to build reactive web applications using Spring Boot with WebFlux.

Finally, you’ll learn how to test applications using JUnit 5, as well as how to secure and deploy your application or service to cloud providers like Heroku. After reading this book, you’ll have the skills needed to start building your own Spring Boot cloud-native, Java-based applications and microservices with confidence, and to take the next steps in your career. You will learn how to:

  • Explore the Spring Boot 3 micro framework using Spring Native for faster, better performance
  • Build cloud-native Java applications and microservices with Spring Boot
  • Work with relational and NoSQL databases using Boot with Spring Data
  • Create reactive web applications using Spring’s WebFlux
  • Secure, test, and deploy applications and services

Java Persistence with Spring Data and HibernateJava Persistence with Spring Data and Hibernate

By Cătălin Tudose
Manning Publications, 616 pages

This book teaches you the ins-and-outs of Java persistence with hands-on examples using Spring Data, JPA, and Hibernate. The book carefully analyzes the capabilities of the major Java persistence tools and guides you through the most common use cases. By comparing and contrasting the alternatives, you’ll find it easy to choose the right tool choice for your applications. You’ll learn how to make and utilize mapping strategies, about the different approach to transactions for both Hibernate and Spring Data, and even how to efficiently test Java persistence applications. The practical techniques are demonstrated with both relational and non-relational databases. You will learn about:

  • Mapping persistent classes, value types, and inheritance
  • Mapping collections and entity associations
  • Processing transactions with Spring Data and Hibernate
  • Creating fetch plans, strategies, and profiles
  • Filtering data
  • Building Spring Data REST projects
  • Using Java persistence with non-relational databases
  • Querying JPA with QueryDSL
  • Testing Java persistence applications

Game development

Introduction to Java Through Game DevelopmentIntroduction to Java Through Game Development

By Victor G. Brusca
Apress, 248 pages

Interested in learning how to program with Java? Let’s face it, the best way to learn to program is by writing programs. This can be a daunting proposition with the specter of hours of simple command line example programs hanging over your head. Fear not! Now you can learn to program in Java in a fun way by working on video games.

With this book, you’ll get to work with three Java game projects and have access to the complete game code for each project, including a full Java game engine. After completing this book, you’ll be proficient in Java programming, having worked with the language’s fundamental aspects throughout the text, and will be ready to further your Java and game programming expertise with confidence. You will:

  • Master the fundamentals of the Java programming language
  • Use different data structures like arrays, lists, stacks, and queues
  • Understand game programming basics including the main game loop
  • Gain experience working with three different game projects via the book’s coding challenges
  • Work with the 2D game engine that powers the book’s included games and learn to create your own new game projects
  • Understand advanced Java topics like classes, encapsulation, inheritance, and polymorphism
  • Work with exceptions and how to use debugging techniques to trace through code
  • Sharpen your skills with over a dozen coding challenges that test your abilities with a development task on a real game project

Memory

Java Memory ManagementJava Memory Management

By Maaike van Putten, Seán Kennedy
Packt Publishing, 146 pages

Understanding how Java organizes memory is important for every Java professional, but this particular topic is a common knowledge gap for many software professionals. Having in-depth knowledge of memory functioning and management is incredibly useful in writing and analyzing code, as well as debugging memory problems. In fact, it can be just the knowledge you need to level up your skills and career.

In this book, you’ll start by working through the basics of Java memory. After that, you’ll dive into the different segments individually. You’ll explore the stack, the heap, and the Metaspace. Next, you’ll be ready to delve into JVM standard garbage collectors. The book will also show you how to tune, monitor and profile JVM memory management. Later chapters will guide you on how to avoid and spot memory leaks.

By the end of this book, you’ll have understood how Java manages memory and how to customize it for the benefit of your applications.

Databases

MySQL Database Service RevealedMySQL Database Service Revealed

By Charles Bell
Apress, 392 pages

Access all the information you need to begin using the MySQL Database Service (MDS) in the Oracle Cloud Infrastructure (OCI). MDS is Oracle’s new platform as a service (PAAS) offering for open-source database users. This book covers getting started with an account in OCI, gives a brief overview of OCI services available, and provides a short tutorial on MDS. Reading this book helps you take advantage of the powerful OCI features by building your own MySQL database in the cloud.

Examples in this book center around running MDS in OCI, and include several of the popular use cases as well as advice on how to implement them. In addition, you will learn more about the related MDS OCI features, such as the high availability features currently available. Finally, you will learn how to back up and restore your data as well as how to get your data into and out of the cloud. The skills you learn in this book will help you get started using MDS and letting Oracle do the heavy lifting of managing MDS operations and implementation. You will learn how to:

  • Use Oracle Cloud Infrastructure (OCI)
  • Deploy MySQL Database Service (MDS) systems in the cloud
  • Connect your applications to MDS
  • Back up and recover using the data recovery features of MDS
  • Employ the newest high availability features of MDS

Reference

Java in a Nutshell, eighth editionJava in a Nutshell, eighth edition

By Benjamin J. Evans, Jason Clark, David Flanagan
O’Reilly, 431 pages

This updated edition of the Nutshell guide not only helps experienced Java programmers get the most out of versions through Java 17, it also serves as a learning path for new developers. Chock-full of examples that demonstrate how to take complete advantage of modern Java APIs and development best practices, this thoroughly revised book includes new material on recent enhancements to the Java object model that every developer should know about. The first section provides a fast-paced, no-fluff introduction to the Java programming language and the core runtime aspects of the Java platform. The second section is a reference to core concepts and APIs that explains how to perform real programming work in the Java environment. You will:

  • Get up to speed on language details through Java 17
  • Learn object-oriented programming using basic Java syntax
  • Explore generics, enumerations, annotations, and lambda expressions
  • Understand techniques used in object-oriented design
  • Examine how concurrency and memory are intertwined
  • Work with Java collections and handle common data formats
  • Delve into Java’s latest I/O APIs including asynchronous channels
  • Become familiar with development tools in OpenJDK

Coming in late 2023

Java: A Beginner’s Guide, 10th editionJava: A Beginner’s Guide, 10th edition

By Herbert Schildt and Danny Coward
McGraw Hill Professional Computing

Thoroughly updated for Java 21, this hands-on resource shows, step by step from the very first chapter, how to get started programming in Java. The book starts with the basics, such as how to create, compile, and run a Java program. From there, you will learn essential Java keywords, syntax, and commands.

Java: The Complete Reference, 13th edition

By Herbert Schildt and Danny Coward
McGraw Hill Professional Computing

Java: A Beginner’s Guide, 10th edition

Fully updated for Java 21, this practical guide shows, step by step, how to design, write, troubleshoot, run, and maintain high-performance Java programs. This book covers the entire Java language, including its syntax, keywords, and libraries.

Recent Java Magazine book reviews

Alan Zeichick

Editor in Chief, Java Magazine

Alan Zeichick is editor in chief of Java Magazine and editor at large of Oracle’s Content Central group. A former mainframe software developer and technology analyst, Alan has previously been the editor of AI Expert, Network Magazine, Software Development Times, Eclipse Review, and Software Test & Performance. Follow him on Twitter @zeichick.

Show more
Oracle Chatbot
Disconnected