Otimização de Código em Java
Pavlos Kosmetatos
Lead Engineer @Wealthyhood

StackOverflowError se o limite for excedidonew cria um objeto e o aloca no 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 }
// Ineficiente
List<String> list1 = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
String s = new String("value"); // 1000 objetos
list1.add(s);
}
// Melhor
List<String> list2 = new ArrayList<>();
String s = "value"; // Único objeto
for (int i = 0; i < 1000; i++) {
list2.add(s);
}
Otimização de Código em Java