Вы можете проверить это сами.
public static void main(String... args) {
long free1 = free();
String[] two = new String[2];
long free2 = free();
String[] twenty = new String[20];
long free3 = free();
if (free3 == free1) System.err.println("You need to use -XX:-UseTLAB");
System.out.println("String[2] took " + (free1 - free2) + " bytes and String[20] took " + (free2 - free3) + " bytes.");
}
private static long free() {
return Runtime.getRuntime().freeMemory();
}
печатает
String[2] took 24 bytes and String[20] took 96 bytes.
Таким образом, вы можете тратить 72 байта памяти.Если ваша память стоит 10 долларов за ГБ, вы можете тратить 0,000072 цента памяти.Однако секунда вашего времени может стоить 2 цента.В этом случае буквально не стоит тратить миллисекунды, беспокоясь об этом.т.е. время, которое требуется для записи 20 вместо 2, стоит гораздо, гораздо больше.