/dev/reading
Category

Java

30 books
Order by
View
Augumenting Object-Oriented Java Code with Functional Principles
by Ben Weidig

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 lambda expressions 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 into 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 this book, you will:

  • Get a high-level overview of functional programming, including the types already available to Java developers
  • Explore different FP concepts and learn how to use them
  • Learn how to augment your code and use Java's new functional features in your daily work without going fully functional
  • Develop a functional mindset and improve your programming skills regardless of language or paradigm
by Claus Ibsen and Jonathan Anstey

Camel in Action, Second Edition is the most complete Camel book on the market. Written by core developers of Camel and the authors of the highly acclaimed first edition, this book distills their experience and practical insights so that you can tackle integration tasks like a pro.

by David Kopec

Sharpen your coding skills by exploring established computer science problems!

Classic Computer Science Problems in Java challenges you with time-tested scenarios and algorithms. You’ll work through a series of exercises based in computer science fundamentals that are designed to improve your software development abilities, improve your understanding of artificial intelligence, and even prepare you to ace an interview. As you work through examples in search, clustering, graphs, and more, you'll remember important things you've forgotten and discover classic solutions to your "new" problems!

by Cay S. Horstmann

Core Java, Volume I: Fundamentals, Twelfth Edition, is the definitive guide to writing robust, maintainable code. Whatever version of Java you are using--up to and including Java 17--this book will help you achieve a deep and practical understanding of the language and APIs. With hundreds of realistic examples, Cay S. Horstmann reveals the most powerful and effective ways to get the job done.

This book is written for readers with prior programming experience who are looking for in-depth coverage of the Java language and platform. You'll learn about all language features in detail, including the recent improvements in Java 17. The applied chapters and code examples cover the most up-to-date capabilities of the vast Java library. For 25 years, Core Java has prepared serious programmers for serious Java programming.

This first of two volumes offers in-depth coverage of fundamental Java programming, including object-oriented programming, generics, collections, lambda expressions, concurrency, and functional programming. Classic material for Swing UI programming is included for those who need it. This edition's new content covers text blocks, switch enhancements, records, pattern matching for instanceof, sealed classes, and more.

  • Master foundational techniques, idioms, and best practices for writing superior Java code
  • Leverage the power of interfaces, lambda expressions, and inner classes
  • Harden programs through effective exception handling and debugging
  • Write safer, more reusable code with generic programming
  • Improve performance and efficiency with Java's standard collections
  • Explore simple programs with JShell and assemble complex programs with archives and modules
  • Build cross-platform GUIs with the Swing toolkit
  • Fully utilize multicore processors with Java's powerful concurrency model

See Core Java, Volume II: Advanced Features, Twelfth Edition (coming in 2022), for expert coverage of Java 17 enterprise features, the module system, annotations, networking, security, and advanced UI programming.

by Michael T. Goodrich and Roberto Tamassia

The design and analysis of efficient data structures has long been recognized as a key component of the Computer Science curriculum. Goodrich, Tomassia and Goldwasser's approach to this classic topic is based on the object-oriented paradigm as the framework of choice for the design of data structures. For each ADT presented in the text, the authors provide an associated Java interface. Concrete data structures realizing the ADTs are provided as Java classes implementing the interfaces. The Java code implementing fundamental data structures in this book is organized in a single Java package, net.datastructures. This package forms a coherent library of data structures and algorithms in Java specifically designed for educational purposes in a way that is complimentary with the Java Collections Framework.

Best practices for the Java Platform
by Joshua Bloch

Since this Jolt-award winning classic was last updated in 2008, the Java programming environment has changed dramatically. Java 7 and Java 8 introduced new features and functions including, forEach() method in Iterable interface, default and static methods in Interfaces, Functional Interfaces and Lambda Expressions, Java Stream API for Bulk Data Operations on Collections, Java Time API, Collection API improvements, Concurrency API improvements, and Java IO improvements.

In this new edition of Effective Java, Bloch explores new design patterns and language idioms that have been introduced since the second edition was released in 2008 shortly after Java SE6, including Lambda, streams, generics and collections, as well as selected Java 9 features.

As in previous editions, each chapter consists of several “items” presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why.

  • Updated techniques and best practices on classic topics, including objects, classes, libraries, methods, and serialization
  • How to avoid the traps and pitfalls of commonly misunderstood subtleties of the language
  • Focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io
by Debu Panda, Reza Rahman, Ryan Cuprak and Michael Remijan

Building on the bestselling first edition, EJB 3 in Action, Second Edition tackles EJB 3.2 head-on, through numerous code samples, real-life scenarios, and illustrations. This book is a fast-paced tutorial for Java EE business component development using EJB 3.2, JPA 2 and CDI. Besides covering the basics of EJB 3.2, this book includes in-depth EJB 3.2 internal implementation details, best practices, design patterns, and performance tuning tips.

How functional techniques improve your Java programs
by Pierre-Yves Saumont

Functional Programming in Java teaches Java developers how to incorporate the most powerful benefits of functional programming into new and existing Java code. You'll learn to think functionally about coding tasks in Java and use FP to make your applications easier to understand, optimize, maintain, and scale.

by Dierk König, Paul King, Guillaume Laforge, Hamlet D'Arcy, Cédric Champeau, Erik Pragt and Jon Skeet

Groovy in Action, Second Edition is a thoroughly revised, comprehensive guide to Groovy programming. It introduces Java developers to the dynamic features that Groovy provides, and shows how to apply Groovy to a range of tasks including building new apps, integration with existing code, and DSL development. Covers Groovy 2.4.

A Learner's Guide to Real-World Programming
by Kathy Sierra, Bert Bates and Trisha Gee

Head First Java is a complete learning experience in Java and object-oriented programming. With this book, you'll learn the Java language with a unique method that goes beyond how-to manuals and helps you become a great programmer. Through puzzles, mysteries, and soul-searching interviews with famous Java objects, you'll quickly get up to speed on Java's fundamentals and advanced topics including lambdas, streams, generics, threading, networking, and the dreaded desktop GUI. If you have experience with another programming language, Head First Java will engage your brain with more modern approaches to coding--the sleeker, faster, and easier to read, write, and maintain Java of today.

If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. If you haven't, you're in for a treat. With Head First Java, you'll learn Java through a multisensory experience that engages your mind, rather than by means of a text-heavy approach that puts you to sleep.

Building Secure Web Applications
by Jim Manico and August Detlefsen

Develop, deploy, and maintain secure Java applications using the expert techniques and open source libraries described in this Oracle Press guide. Iron-Clad Java presents the processes required to build robust and secure applications from the start and explains how to eliminate existing security bugs. Best practices for authentication, access control, data protection, attack prevention, error handling, and much more are included. Using the practical advice and real-world examples provided in this authoritative resource, you'll gain valuable secure software engineering skills.

  • Establish secure authentication and session management processes
  • Implement a robust access control design for multi-tenant web applications
  • Defend against cross-site scripting, cross-site request forgery, and clickjacking
  • Protect sensitive data while it is stored or in transit
  • Prevent SQL injection and other injection attacks
  • Ensure safe file I/O and upload
  • Use effective logging, error handling, and intrusion detection methods
  • Follow a comprehensive secure software development lifecycle

"In this book, Jim Manico and August Detlefsen tackle security education from a technical perspective and bring their wealth of industry knowledge and experience to application designers. A significant amount of thought was given to include the most useful and relevant security content for designers to defend their applications. This is not a book about security theories, it’s the hard lessons learned from those who have been exploited, turned into actionable items for application designers, and condensed into print." —From the Foreword by Milton Smith, Oracle Senior Principal Security Product Manager, Java

by Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes and Doug Lea

Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice, the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.

However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.

This book covers:

  • Basic concepts of concurrency and thread safety
  • Techniques for building and composing thread-safe classes
  • Using the concurrency building blocks in java.util.concurrent
  • Performance optimization dos and don’ts
  • Testing concurrent programs
  • Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model
A Desktop Quick Reference
by Ben Evans and David Flanagan

This updated edition of Java in a Nutshell not only helps experienced Java programmers get the most out of Java versions 9 through 11, it’s also 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 Java Concurrency Utilities.

The book’s 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.

  • Get up to speed on language details, including Java 9-11 changes
  • Learn object-oriented programming, using basic Java syntax
  • Explore generics, enumerations, annotations, and lambda expressions
  • Understand basic techniques used in object-oriented design
  • Examine concurrency and memory, and how they’re intertwined
  • Work with Java collections and handle common data formats
  • Delve into Java’s latest I/O APIs, including asynchronous channels
  • Use Nashorn to execute JavaScript on the Java Virtual Machine
  • Become familiar with development tools in OpenJDK
In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond
by Scott Oaks

Coding and testing are generally considered separate areas of expertise. In this practical book, Java expert Scott Oaks takes the approach that anyone who works with Java should be adept at understanding how code behaves in the Java Virtual Machine—including the tunings likely to help performance. This updated second edition helps you gain in-depth knowledge of Java application performance using both the JVM and the Java platform.

Developers and performance engineers alike will learn a variety of features, tools, and processes for improving the way the Java 8 and 11 LTS releases perform. While the emphasis is on production-supported releases and features, this book also features previews of exciting new technologies such as ahead-of-time compilation and experimental garbage collections.

  • Understand how various Java platforms and compilers affect performance
  • Learn how Java garbage collection works
  • Apply four principles to obtain best results from performance testing
  • Use the JDK and other tools to learn how a Java application is performing
  • Minimize the garbage collector’s impact through tuning and programming practices
  • Tackle performance issues in Java APIs
  • Improve Java-driven database application performance
by Cătălin Tudose

Master Java persistence using the industry-leading tools Spring Data and Hibernate.

In Java Persistence with Spring Data and Hibernate you will learn:

  • 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

Java Persistence with Spring Data and Hibernate 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.

Comprehensive Coverage of the Java Language
by Herbert Schildt and Dr. Danny Coward

Fully updated for the current version of Java, Java SE 21, this comprehensive guide shows, step by step, how to design, write, debug, run, and administer high-performance Java programs. Inside, bestselling author Herbert Schildt and programming expert Dr. Danny Coward cover the entire Java language, including its syntax, keywords, and libraries. The book lays out cutting-edge development techniques and best practices.

Java: The Complete Reference, Thirteenth Edition features clear explanations, detailed code samples, and real-world examples that demonstrate how Java can be put to work in the real world. JavaBeans, servlets, applets, Swing, lambda expressions, multithreading, and the default interface method are thoroughly discussed. You will get full details on all of the latest features and changes in JDK 18 through long-term support (LTS) release JDK 21.

  • Designed for novice, intermediate, and professional programmers alike
  • Source code for all examples and projects are available for download
  • Written in the clear, uncompromising style Herb Schildt is famous for
A Hands-On Introduction to Programming
by Bryson Payne

Java is the world’s most popular programming language, but it’s known for having a steep learning curve. Learn Java the Easy Way takes the chore out of learning Java with hands-on projects that will get you building real, functioning apps right away.

You’ll start by familiarizing yourself with JShell, Java’s interactive command line shell that allows programmers to run single lines of code and get immediate feedback. Then, you’ll create a guessing game, a secret message encoder, and a multitouch bubble-drawing app for both desktop and mobile devices using Eclipse, an industry-standard IDE, and Android Studio, the development environment for making Android apps.

As you build these apps, you’ll learn how to:

  • Perform calculations, manipulate text strings, and generate random colors
  • Use conditions, loops, and methods to make your programs responsive and concise
  • Create functions to reuse code and save time
  • Build graphical user interface (GUI) elements, including buttons, menus, pop-ups, and sliders
  • Take advantage of Eclipse and Android Studio features to debug your code and find, fix, and prevent common mistakes

If you’ve been thinking about learning Java, Learn Java the Easy Way will bring you up to speed in no time.

A conscise practical guide to learning everyhing a Java professional needs to know
by Dr. Seán Kennedy and Maaike van Putten

Learn Java with Projects stands out in the world of Java guides; while some books skim the surface and others get lost in too much detail, this one finds a nice middle ground.

You’ll begin by exploring the fundamentals of Java, from its primitive data types through to loops and arrays. Next, you’ll move on to object-oriented programming (OOP), where you’ll get to grips with key topics such as classes, objects, encapsulation, inheritance, polymorphism, interfaces, and more. The chapters are designed in a way that focuses on topics that really matter in real-life work situations. No extra fluff here, so that you get more time to spend on the basics and form a solid foundation. As you make progress, you’ll learn advanced topics including generics, collections, lambda expressions, streams and concurrency. This book doesn't just talk about theory—it shows you how things work with little projects, which eventually add up to one big project that brings it all together.

By the end of this Java book, you’ll have sound practical knowledge of Java and a helpful guide to walk you through the important parts of Java.

What you will learn

  • Get a clear understanding of Java fundamentals such as primitive types, operators, scope, conditional statements, loops, exceptions, and arrays
  • Master OOP constructs such as classes, objects, enums, interfaces, and records
  • Develop a deep understanding of OOP principles such as polymorphism, inheritance, and encapsulation
  • Delve into the advanced topics of generics, collections, lambdas, streams, and concurrency
  • Visualize what is happening in memory when you call a method or create an object
  • Appreciate how effective learning-by-doing is

Who this book is for

This book is for anyone looking to learn the core concepts of Java. If you’re learning programming (and Java) for the first time or want to upskill to Java (with experience in a different language), then this book is for you. Prior knowledge of programming is helpful but not necessary.

by Patrick Niemeyer and Daniel Leuck

Java is the preferred language for many of today’s leading-edge technologies—everything from smartphones and game consoles to robots, massive enterprise systems, and supercomputers. If you’re new to Java, the fourth edition of this bestselling guide provides an example-driven introduction to the latest language features and APIs in Java 6 and 7. Advanced Java developers will be able to take a deep dive into areas such as concurrency and JVM enhancements.

You’ll learn powerful new ways to manage resources and exceptions in your applications, and quickly get up to speed on Java’s new concurrency utilities, and APIs for web services and XML. You’ll also find an updated tutorial on how to get started with the Eclipse IDE, and a brand-new introduction to database access in Java.

by Kenneth A. Kousen

Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day-to-day work with Java. It starts by introducing the key differences between Java and Groovy—and how you can use them to your advantage. Then, it guides you step-by-step through realistic development challenges, from web applications to web services to desktop applications, and shows how Groovy makes them easier to put into production.

An in-depth guide to JVM internals and performance optimization
by Otàvio Santana

Mastering the Java Virtual Machine is a comprehensive guide that will take you into the heart of Java programming, guiding you through the intricate workings of the Java Virtual Machine (JVM) and equipping you with essential skills to become a proficient Java developer.

You’ll start by understanding the JVM, exploring its architecture and how it executes Java code. Through detailed explanations and real-world examples, you’ll gain a deep understanding of JVM internals, enabling you to write efficient and optimized Java applications.

As you progress, you’ll delve into memory management and execution, unraveling the complexities of heap and stack management, garbage collection, and memory profiling. You'll learn how memory is allocated and reclaimed in the JVM, as well as how to optimize memory usage and identify performance bottlenecks in your applications. With this knowledge, you’ll be able to create Java programs that are not only robust but also highly performant.

By the end of this book, you’ll have the skills needed to excel in Java programming, writing efficient, maintainable code.

What you will learn

  • Understand JVM architecture and bytecode execution
  • Explore memory management and optimize memory usage
  • Compare and evaluate alternative JVMs like GraalVM
  • Master reflection for dynamic behavior in Java applications
  • Utilize Java annotation processors for code generation
  • Get to grips with reactive programming principles for scalable applications

Who this book is for

This book is for Java developers seeking to deepen their expertise in the Java Virtual Machine (JVM) and optimize Java applications for peak performance. It caters to both intermediate and seasoned professionals who want to explore specific aspects such as JVM internals, memory management, threading, security, and performance tuning.

Lambdas, streams, functional and reactive programming
by Raoul-Gabriel Urma, Mario Fusco and Alan Mycroft

Manning's bestselling Java 8 book has been revised for Java 9 and 10! In Modern Java in Action, you'll build on your existing Java language skills with the newest features and techniques.

Exam 1Z0-829
by Khalid A. Mughal and Vasily A. Strelnikov

OCP Oracle Certified Professional Java SE 17 Developer Exam 1Z0-829 Programmer's Guide 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 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 one book anyone studying for Java SE 17 Developer or Java SE 11 Developer certification needs, it features

  • 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 UML (Unified Modeling Language) to illustrate program design
  • Dozens of review questions with annotated answers to help prepare for the exam and a complete Mock Exam
Exam 1Z0-829
by Scott Selikoff and Jeanne Boyarsky

In the OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829, you'll find accessible and essential test prep material for the in-demand and practical OCP Java SE 17 Developer certification. Providing comprehensive coverage of all OCP Java SE 17 exam objectives and competencies, the Study Guide offers you access to all the skills and knowledge you'll need to succeed on the test and in the field as a new or experienced Java developer.

This book provides material on records, sealed classes, text blocks, dates, streams, controlling program flow, using the Java object-oriented approach, handling exceptions, working with arrays and collections, and more. You'll also get:

  • Intuitively organized information that aligns with the competencies tested on the exam and those required by real-world Java developers
  • Opportunities to practice and develop skills that remain in high demand in the IT industry
  • Access to the Sybex online learning center, with chapter review questions, full-length practice exams, hundreds of electronic flashcards, and a glossary of key terms

Perfect for anyone prepping for the brand-new OCP Java SE 17 credential, OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829 is also a can't-miss reference for practicing and aspiring Java developers seeking to learn or reinforce their foundational skills in Java programming and improve their performance on the job.

Creating Modular Applications in Java
by Richard S. Hall, Karl Pauls, Stuart McCulloch and David Savage

OSGi is a Java-based framework for creating applications as a set of interconnected modules. OSGi lets you install, start, stop, update, or uninstall modules at execution time without taking down your entire system. It's the backbone of the Eclipse plugin system, as well as many Java EE containers, such as GlassFish, Geronimo, and WebSphere.

OSGi in Action provides a clear introduction to OSGi concepts with examples that are relevant both for architects and developers. You'll start with the central ideas of OSGi: bundles, module lifecycles, and interaction among application components. With the core concepts well in hand, you'll explore numerous application scenarios and techniques. You'll learn how to migrate legacy systems to OSGi and how to test, debug, and manage applications.

Detailed Solutions in Eight Programming Languages
by Jan Goyvaerts and Steven Levithan

Take the guesswork out using regular expressions to search and manipulate text. With this updated cookbook, you have access to hundreds of proven recipes for today's most popular programming languages - including C#, Java, JavaScript (including XRegExp), Perl, PHP, Python, Ruby, and VB.NET. As useful as regular expressions can be for programmers, their power doesn't come worry-free. This guide will deepen your understanding, no matter how much experience you have with this reliable tool. You'll learn powerful new tricks, steer clear of flavor-specific gotchas, and save valuable time with this huge library of solutions to difficult, real-world problems.

Understand the basics of regular expressions through a concise tutorial Use regular expressions effectively in several programming and scripting languages Learn how to validate and format input Manage words, lines, special characters, and numerical values Find solutions for using regular expressions in URLs, paths, markup, and data exchange Discover the nuances of more advanced regex features Experience how regular expressions' APIs, syntax, and behavior differ from language to language Write better regular expressions for custom needs

An effective guide for aspiring Java developers to ace their programming interviews
by Anghel Leonard

Java is one of the most sought-after programming languages in the job market, but cracking the coding interview in this challenging economy might not be easy. This comprehensive guide will help you to tackle various challenges faced in a coding job interview and avoid common interview mistakes, and will ultimately guide you toward landing your job as a Java developer.

This book contains two crucial elements of coding interviews - a brief section that will take you through non-technical interview questions, while the more comprehensive part covers over 200 coding interview problems along with their hands-on solutions. This book will help you to develop skills in data structures and algorithms, which technical interviewers look for in a candidate, by solving various problems based on these topics covering a wide range of concepts such as arrays, strings, maps, linked lists, sorting, and searching. You'll find out how to approach a coding interview problem in a structured way that produces faster results. Toward the final chapters, you'll learn to solve tricky questions about concurrency, functional programming, and system scalability.

By the end of this book, you'll have learned how to solve Java coding problems commonly used in interviews, and will have developed the confidence to secure your Java-centric dream job.

What you will learn

  • Solve the most popular Java coding problems efficiently
  • Tackle challenging algorithms that will help you develop robust and fast logic
  • Practice answering commonly asked non-technical interview questions that can make the difference between a pass and a fail
  • Get an overall picture of prospective employers' expectations from a Java developer
  • Solve various concurrent programming, functional programming, and unit testing problems

Who this book is for

This book is for students, programmers, and employees who want to be invited to and pass interviews given by top companies. The book assumes high school mathematics and basic programming knowledge.

by Nicolai Parlog

Java's much-awaited "Project Jigsaw" is finally here! Java 11 includes a built-in modularity framework, and The Java Module System is your guide to discovering it. In this new book, you'll learn how the module system improves reliability and maintainability, and how it can be used to reduce tight coupling of system components.

by Benjamin Evans, Jason Clark and Martijn Verburg

Understanding Java from the JVM up gives you a solid foundation to grow your expertise and take on advanced techniques for performance, concurrency, containerization, and more.

In The Well-Grounded Java Developer, Second Edition you will learn:

  • The new Java module system and why you should use it
  • Bytecode for the JVM, including operations and classloading
  • Performance tuning the JVM
  • Working with Java’s built-in concurrency and expanded options
  • Programming in Kotlin and Clojure on the JVM
  • Maximizing the benefits from your build/CI tooling with Maven and Gradle
  • Running the JVM in containers
  • Planning for future JVM releases

The Well-Grounded Java Developer, Second Edition introduces both the modern innovations and timeless fundamentals you need to know to become a Java master. Authors Ben Evans, Martijn Verburg, and Jason Clark distill their decades of experience as Java Champions, veteran developers, and key contributors to the Java ecosystem into this clear and practical guide. You’ll discover how Java works under the hood and learn design secrets from Java’s long history. Each concept is illustrated with hands-on examples, including a fully modularized application/library and creating your own multithreaded application.

Read, debug, and optimize JVM applications
by Laurentiu Spilca

Effectively reading and understanding existing code is a developer’s superpower. In this book, you’ll master techniques for code profiling, advanced debugging, and log evaluation to find and fix bugs and performance problems.

In Troubleshooting Java: Read, debug, and optimize JVM applications 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

Searching for bugs, detangling messy legacy code, or evaluating your codebase for new features sucks up much of a developer's time.

Troubleshooting Java: Read, debug, and optimize JVM applications 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.