Когда я запускаю следующую программу (работает с "java -Xmx151M -cp . com.some.package.xmlfun.Main"
):
package com.some.package.xmlfun;
public class Main {
public static void main(String [] args) {
char [] chars = new char[50 * 1024 * 1024];
}
}
Мне нужно увеличить максимальную память до 151 М (-Xmx151M). Соответственно, когда я увеличиваю размер массива, необходимо увеличить лимит:
- 50 * 1024 * 1024 → -Xmx151M
- 100 * 1024 * 1024 → -Xmx301M
- 150 * 1024 * 1024 → -Xmx451M
Почему выглядит так, что java требует 3 байта на char вместо 2 байтов, как предполагает документация?
Также, когда я так же создаю массив long, мне кажется, что ему нужно 12 байт в длину, вместо 8, с int ему нужно 6 байт вместо 4. Как правило, он выглядит так: array_size * element_size * 1.5
Компиляция с помощью - javac \com\som\package\xmlfun\\*java
Работа с - java -Xmx151M -cp . com.some.package.xmlfun.Main