Я читал в сети и нашел ссылки на хранилище ссылок. Ссылки в смысле массив собирается хранить адрес памяти переменных i Угадайте, если я не ошибаюсь. Если это так, почему я не вижу адрес памяти, когда я перебираю строковый массив как ниже.В чем разница между примитивным массивом и массивом ссылки.
String[] arrNames = new String[3];
arrNames[0] = "John";
arrNames[1] = "Mac";
arrNames[2] = "Alex";
Теперь согласно определению массив arrNames будет хранить ссылки на arrNames [0], arrNames [1], arrNames [2]. Это означает адрес памяти, который будет указывать на имена i.eJohn, Max и Alex.
Если это примитивный массив, он будет непосредственно хранить значения, как показано ниже.
int[] Num = new int[3];
Num[0] = 1;
Num[1] = 2;
Num[2] = 3;
The Num [0] будет прямо перемещать номера 1 вместо адреса, который указывает на число.
Пожалуйста, исправьте меня, если я его неправильно понял.
Это же как разница между примитивной переменным и переменным объектом, за исключением того, что есть больше из них. Java скрывает адреса от вас намеренно. –
Итак, объектная переменная будет хранить адрес памяти правильно –
Нет, переменная объекта хранит ссылку на объект, которая является абстрактной вещью, о которой Java действительно не хочет беспокоиться. На низком уровне да, это в основном указатель. http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.3.1 –