Java Performance and Memory optimization is one of the challenging task in java programming.In case of big java projects we must consider this.Here I listed few techniques for java performance and memory optimization.
1.Use mutable StringBuffer/StringBuilder classes instead of immutable String objects.
2.In case of I/O operations use buffering when writing to and reading from
files and/or streams.Avoid reader/writers use streams instead of this.
3.Remove references to the short-lived objects from long-lived objects like Java collections.
3.Create objects before entering the loop and avoid creating new objects for each iteration.
4.Use ArrayLists, HashMap instead of Vector,Hashtable etc wherever possible.
5.Reduce calls to Date, Calendar, etc related classes.
6.Use logging frameworks like Log4J which uses I/O buffers instead of System.out.println.
7.Set the initial capacity of a collection.Empty vector has array size 10.
8.Use tools like JProfiler,JProbe,OptimizeIt to find memory leaks in your java application.
9.Improve Java Application performance using SwingWorker class.
10.Use Thread pooling and database connection pooling techniques wherever possible.