Как вы можете продемонстрировать, что типы массивов являются ссылочными типами? - PullRequest
1 голос
/ 09 января 2012

Это прошлый экзаменационный вопрос, и я не знаю, как бы вы ответили на него, чтобы получить полную оценку.

Как вы можете продемонстрировать, что типы массивов являются ссылочными типами?

Ответы [ 4 ]

2 голосов
/ 10 января 2012
public class ArraysAreReferences {

  public static void changeIt(int[] arr) {
    arr[0] = 1000;
  }
  public static void main(String[] args) {
    int[] arr = new int[] { 1, 2, 3 };
    changeIt(arr);  

    // If arrays are passed by reference arr[0] should now be 1000...
    System.out.println(arr[0]);  
  }
}
2 голосов
/ 09 января 2012

http://msdn.microsoft.com/en-us/library/s6938f28.aspx

Создайте тип массива вне метода и заполните его значениями.

Отправьте его в метод и измените значение.

Прочтите его вне метода, чтобы увидеть, что значение действительно изменилось.

1 голос
/ 09 января 2012

Вы можете передать объект типа массива в функцию, которая его модифицирует, и заметить, что исходный массив изменился.

0 голосов
/ 09 января 2012

Предполагая, что речь идет о Java (в соответствии со всеми вашими предыдущими вопросами), канонический способ - процитировать Спецификация языка Java :

10.2 Переменные массива

Переменная типа массива содержит ссылку на объект.

Эмпирически:

System.out.println(new int[0] instanceof Object);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...