Maximizing JVM Performance
(This tutorial is a work in progress)
One of the most valuable features of a Java application is the Java Virtual Machine's management of memory, CPU, and other system resources. This one feature, all by itself, represents significant awareness of proper application design patterns. Those who have researched design patterns generally agree that a good software design pattern has the following characteristics:
- It addresses a single intent - It is decoupled from implementation specific strategies - It anticipates change and plans for it accordingly - Implementations can be swapped out without re-coding or even re-compiling other parts of the application.
The above list is only a sampling of what makes a good design pattern( or an implementation of a design pattern). The Java virtual machine meets the above qualifications and more, but being a Java developer requires more than knowing how to write and compile your Java code (or Groovy or Scala code, for that matter). You need to understand the JVM itself, why it exists, why it is important, and how it can bite you if you try to ignore it.