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; // Stack
String name = "Java"; // Heap
List<String> items = // Reference on Stack new ArrayList<>(); // Object on Heap
items.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