Java Performance Tuning, Profiling, and Memory Management