Troubleshooting Java, Second Edition, Video Edition

Troubleshooting Java, Second Edition, Video Edition

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 9h 20m | 1.27 GB

Learn how to quickly work out what your Java code is doing so you can understand when and why it misbehaves.

Searching for bugs, detangling messy legacy code, or evaluating your codebase for new features sucks up much of a developer’s time. Effectively reading and understanding existing code is a true superpower! Troubleshooting Java, Second Edition teaches you to efficiently analyze and debug Java applications using time-tested tools and new AI-powered techniques.

In Troubleshooting Java, Second Edition you’ll learn:

  • Efficiently use debuggers to quickly understand complex code
  • Utilize AI-driven tools to automate log analysis, trace execution, and predict problems
  • Correctly implement and interpret application logs
  • Identify performance bottlenecks and optimize slow execution paths
  • Profile SQL queries to diagnose and optimize database interactions
  • Evaluate heap dumps to detect and fix memory leaks
  • Analyze thread dumps to resolve deadlocks and concurrency issues
  • Navigate the intricacies of service-oriented and microservices systems

In Troubleshooting Java, Second Edition Java veteran Laurențiu Spilcă shares techniques for reading, profiling, debugging, and optimizing Java code that he’s honed over years working with high-stakes systems. This fully-revised second edition, updates coverage for new Java tools and adds methods for saving time and effort using AI. You’ll master techniques to identify memory leaks, optimize database queries, and resolve threading issues with ease. The code samples are in Java, but the skills you learn in this guide can be applied to any JVM language.

Whether you’re working with legacy systems or using AI to generate fresh programs, you’ll spend more time reading and fixing code than writing it from scratch. Troubleshooting is a messy art, and efficient profiling, logging, debugging, and optimization will save you hours of time and countless headaches.

Troubleshooting Java, Second Edition teaches practical techniques to diagnose, debug, and optimize Java applications. You’ll learn to uncover hidden dependencies, diagnose crashes, and resolve performance issues using tools like IntelliJ IDEA Debugger, VisualVM, and Heap Dump Analyzer. This revised and updated second edition introduces AI-powered troubleshooting tools, along with techniques for modern Java and cloud-native apps.

What’s Inside

  • Use debuggers to quickly understand complex code
  • Automate code analysis with AI tools
  • Implement and interpret application logs
  • Identify performance bottlenecks
Table of Contents

1 Part 1. Revisiting the foundation for code investigation
2 Chapter 1. Starting to know your apps
3 Chapter 1. Typical scenarios for using investigation techniques
4 Chapter 1. AI as a game changer in troubleshooting apps
5 Chapter 1. What you will learn in this book
6 Chapter 1. Summary
7 Chapter 2. Understanding your app s logic through debugging techniques
8 Chapter 2. Investigating code with a debugger
9 Chapter 2. When using the debugger might not be enough
10 Chapter 2. Summary
11 Chapter 3. Finding problem root causes using advanced debugging techniques
12 Chapter 3. Using breakpoints that don t pause the execution
13 Chapter 3. Dynamically altering the investigation scenario
14 Chapter 3. Rewinding the investigation case
15 Chapter 3. Summary
16 Chapter 4. Making the most of logs – Auditing an app s behavior
17 Chapter 4. Implementing logging
18 Chapter 4. Summary
19 Part 2. Deep diagnosing an app s execution
20 Chapter 5. Identifying resource consumption problems using profiling techniques
21 Chapter 5. Using a profiler
22 Chapter 5. Using AI assistance
23 Chapter 5. Summary
24 Chapter 6. Finding hidden problems using profiling techniques
25 Chapter 6. Profiling to learn how many times a method is executed
26 Chapter 6. Using a profiler to identify SQL queries an app executes
27 Chapter 6. Summary
28 Chapter 7. Investigating locks in multithreaded architectures
29 Chapter 7. Analyzing thread locks
30 Chapter 7. Analyzing waiting threads
31 Chapter 7. Summary
32 Chapter 8. Investigating deadlocks with thread dumps
33 Chapter 8. Reading thread dumps
34 Chapter 8. Summary
35 Part 3. Diagnosing memory-related problems
36 Chapter 9. Profiling memory-related problems
37 Chapter 9. Profiling to find the culprit
38 Chapter 9. Summary
39 Chapter 10. Investigating memory problems with heap dumps
40 Chapter 10. Reading a heap dump
41 Chapter 10. Using the OQL console to query a heap dump
42 Chapter 10. Summary
43 Chapter 11. Analyzing potential JVM problems with GC logs
44 Chapter 11. Storing GC logs in files
45 Chapter 11. Particular configurations for storing GC logs
46 Chapter 11. Analyzing GC logs
47 Chapter 11. Summary
48 Part 4. Finding problems in large systems
49 Chapter 12. Uncovering system-level failures and service communication problems
50 Chapter 12. Serialization mismatches and versioning problems
51 Chapter 12. Understanding systemic failure modes
52 Chapter 12. Summary
53 Chapter 13. Measuring data consistency and transactions
54 Chapter 13. Tracking and correlating multistep transactions
55 Chapter 13. Measuring and monitoring consistency guarantees
56 Chapter 13. Running reconciliation jobs to compare expected vs. actual state
57 Chapter 13. Summary
58 appendix C. Recommended further reading
59 appendix D. Understanding Java threads
60 appendix D. A thread s life cycle
61 appendix D. Synchronizing threads
62 appendix D. Common problems in multithreaded architectures
63 appendix D. Further reading
64 appendix E. Memory management in Java apps
65 appendix E. The stack used by threads to store local data
66 appendix E. The heap the app uses to store object instances
67 appendix E. The metaspace memory location for storing data types

Homepage