Где эти объекты хранятся в памяти? - PullRequest
0 голосов
/ 10 октября 2019

Я использую типы данных для объявления некоторого значения, а с другой стороны, я использую концепцию класса-оболочки для хранения значения, так где эти объекты или литеральные значения хранятся в памяти?

class raw {
  public static void main(String[] args) {
    int a = 5;
    Integer aa = new Integer(5);
    // where these values are getting stored
  }
}

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

int a = 5 хранится в стеке,

и new Integer(5) объект хранится в куче. Ссылочная переменная Integer aa хранится в памяти стека.

Для каждого потока он имеет изолированную стековую память, и все эти потоки совместно используют память кучи.

0 голосов
/ 10 октября 2019

Думайте о классе-оболочке как о любом другом объекте в Java. Литеральное значение, которое оно хранит, хранится в виде примитивной переменной в объекте.

В случае целого числа он хранится в переменной типа int, которая определена в классе Integer как private final int value;

Посмотрите на исходный код класса здесь http://developer.classpath.org/doc/java/lang/Integer-source.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...