I tend to get these questions asked by a lot by students, or by co-workers looking for a resource, so I wanted a more definite reference for them. Might as well share it with the community.
- How is the Java Memory Model represented and what are its characteristics? 
- How does Garbage Collection work in general and in the most common JVMs? 
- How do I test and tune my Java applications for performance? 
 
     
    