Book Image

Java 9 High Performance

By : Mayur Ramgir, Nick Samoylov
Book Image

Java 9 High Performance

By: Mayur Ramgir, Nick Samoylov

Overview of this book

Finally, a book that focuses on the practicalities rather than theory of Java application performance tuning. This book will be your one-stop guide to optimize the performance of your Java applications. We will begin by understanding the new features and APIs of Java 9. You will then be taught the practicalities of Java application performance tuning, how to make the best use of garbage collector, and find out how to optimize code with microbenchmarking. Moving ahead, you will be introduced to multithreading and learning about concurrent programming with Java 9 to build highly concurrent and efficient applications. You will learn how to fine tune your Java code for best results. You will discover techniques on how to benchmark performance and reduce various bottlenecks in your applications. We'll also cover best practices of Java programming that will help you improve the quality of your codebase. By the end of the book, you will be armed with the knowledge to build and deploy efficient, scalable, and concurrent applications in Java.
Table of Contents (11 chapters)

GC in Java

Java focuses greatly on using automatic memory allocation systems, which means that it employs an automatic garbage collector. The GC in Java recovers the memory after the runtime evaluates that certain objects are no longer in computational use. It uses a method of reference, such as the one that may be employed in a manual scheme.

Once all the references to an object are eliminated, the memory location is marked for automatic freeing by the garbage collector. A memory leak occurs when inefficient code by a programmer references an object that is actually not required. A null pointer exception method is usually employed in Java for identifying non-existent objects.

The main idea behind the use of different GC methods in Java is to take away the burden of memory management from the programmers. In some languages, objects are allocated from heaps and deallocated from...