Avoid polymorphic dispatch on same call site - putting different types in a list and call a method.
Keep small objects local to aid in escape analysis
Use intrinsic methods. (putLong, etc.)
Inspect inlining - PrintInlining, PrintAssembly (yeah...we all know assembly....)