2016-11-22 2 views
-5

Можем ли мы изменить размер массива в java? если нет, объясните это:Можем ли мы изменить размер массива в java?

int arr[] = new int[1]; 
    arr[0]=-10; 
    //arr[1]=1; 
    arr=new int[2]; //Explain this 
    arr[0]=-1; 
    arr[1]=1; 
    System.out.println(arr[0]+" "+arr[1]); 
+1

'reassign'! =' Resize'. – SomeJavaGuy

+0

Это создает и присваивает новый массив, не изменяя размер массива. – RealSkeptic

+3

SO не является новичком-учебником по Java. Я рекомендую вам прочитать [this] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) – Paul

ответ

3

Изменение размера массива невозможно, насколько я могу судить.

Чтобы понять, почему ваш код работает, вам необходимо понять, что массивы являются ссылочными типами. arr держит ссылку на фактический массив, как это:

 holds    points to 
arr ----------> reference -----------> array object 

В этой строке:

arr=new int[2]; 

Вы не делаете ничего, чтобы объект массива в самом конце там. Вы в основном говорите:

Адрес: arr. Я не хочу, чтобы вы держали , что ссылка. Отпустите и удерживайте этой ссылкой (это массив длиной 2)!

«Что происходит с исходным массивом с длиной 1, то?» Ты спрашивал. Именно здесь GC появляется. В какой-то момент собираются объекты, у которых нет ссылки, указывающей на.

+0

Спасибо за объяснение .... –

+0

@SuprakashPal Если вы считаете, что мой ответ отвечает на ваши вопросы вопрос, пожалуйста, подумайте о том, чтобы принять его, нажав на эту галочку! – Sweeper

Смежные вопросы