Java's Toughest Bugs
1h 3mAdvanced2023-11-15
Authors

Kathryn Hodge
Software Developer
Course details
Troubleshooting is a key skill in Java programming, but what are best practices for finding, fixing, and hopefully preventing bugs? In this course, software developer Kathryn Hodge addresses how to handle some of the toughest bugs you’ll encounter in Java. Gain an understanding of the significance and impact of bugs in Java applications while you discover various bug detection techniques and essential debugging fundamentals. Explore specific bug types, including null pointer exceptions, endless loops, and thread-related issues, and build up the knowledge and skills to address them. Plus, learn about bugs related to data serialization and deserialization using Jackson and step through real-world case studies for analyzing and solving complex bugs.
Skills covered
JavaOracleSoftware Development ToolsProgramming LanguagesSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Why are bugs important and complex
- 02 - Using GitHub Codespaces with this course
- 03 - Overview of Java bugs
- 04 - How to establish the impact of a bug
- 05 - Common debugging tools in Java
- 06 - How to evaluate the visibility and monitoring of your system
1. Bug #1 - Endless Loop Phenomena
- 07 - Endless loop symptoms
- 08 - Debugging steps
- 09 - Solve the bug
2. Bug #2 - Pesky Null Pointer Exceptions
- 10 - Null pointer symptoms
- 11 - Debugging steps
- 12 - Solve the bug
- 13 - Using optionals to avoid null pointer exceptions
3. Bug #3 - Scope Abstraction Nightmare
- 14 - Bad scope with abstraction symptoms
- 15 - Debugging steps
- 16 - Solve the bug
4. Bug #4 - Missing Data from Model Class
- 17 - Missing data symptoms
- 18 - Debugging steps
- 19 - Solve the bug
5. Bug #5 - Inconsistent Results in Multithreaded Environment
- 20 - Inconsistent thread data symptoms
- 21 - Debugging steps
- 22 - Solve the bug
6. Bug #6 - Infinitely Running Threads in Multithreaded Environment
- 23 - Infinitely running threads symptoms
- 24 - Debugging steps
- 25 - Solve the bug
Conclusion
- 26 - Strategies for preventing Java bugs