Optimizing Code in Java
Pavlos Kosmetatos
Lead Engineer @Wealthyhood

StackOverflowError if size is exceedednew creates an object and allocates it in the heappublic void processData() { int count = 0; // StackString name = "Java"; // HeapList<String> items = // Reference on Stack new ArrayList<>(); // Object on Heapitems.add(new String("Item")); // Object on Heap }
// Inefficient
List<String> list1 = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
String s = new String("value"); // 1000 objects
list1.add(s);
}
// Better
List<String> list2 = new ArrayList<>();
String s = "value"; // Single object
for (int i = 0; i < 1000; i++) {
list2.add(s);
}
Optimizing Code in Java