void someMethod() {
byte[] array = { 0, 0 };
}
Будет ли этот массив храниться в куче или в стеке?Инициализированный массив java переходит в стек или кучу?
void someMethod() {
byte[] array = { 0, 0 };
}
Будет ли этот массив храниться в куче или в стеке?Инициализированный массив java переходит в стек или кучу?
думаю от этого как всегда происходит на куче.
Я считаю, что некоторые интеллектуальные виртуальные машины могут выделять стек, если они могут обнаружить, что это безопасно, но концептуально оно находится в куче. В частности, все типы массивов являются ссылочными типами (даже если тип элемента является примитивным), поэтому переменная array
(которая находится в стеке) является просто ссылкой на объект, а объекты обычно переходят в кучу.
В частности, представьте себе небольшое изменение:
byte[] someMethod() {
byte[] array = { 0, 0 };
return array;
}
Если массив был выделены в стеке, что бы возвращаемая ссылка должна обратиться?
Он будет храниться в куче