Java, какой смысл создавать новые объекты? - PullRequest
0 голосов
/ 06 декабря 2011

Я довольно новичок в Java, и мне было интересно, в чем разница между ними. Для этого примера я использовал массивы:

class testpile {

public static void main(String[] args)
{
int[] a = {1,2,3,4,5,6}; //First array
int[] b = new int[5];  //Second Array
b[0] = 7;
b[1] = 8;
b[2] = 9;
b[3] = 10;
b[4] = 11;

print(a); 
print(b); 

} 

public static void print(int[] a) {
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
System.out.println(); 
} 


} 

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

Ответы [ 7 ]

3 голосов
/ 06 декабря 2011

В вашем примере нет реальной разницы между ними.Первый в основном просто «синтаксический сахар» для последнего.В обоих случаях массив размещается в куче.

2 голосов
/ 06 декабря 2011

Оба кода создают массив int размером 5/6

В первом случае массив инициализируется с помощью vale во время создания

Во втором случае значение присваивается последнему

в этом разница

1 голос
/ 06 декабря 2011

В этом примере нет разницы между этими двумя.

In the first case the array is initialized at the time of creation
 In second case the value is assigned latter whenever you want...  

Но в обоих случаях он попадет в кучу м / м ..

0 голосов
/ 06 декабря 2011

Я думаю, что результат тот же.

Но когда вы создаете массив с предложением «new», вы должны назначить указанную длину массива.

e.g  int[] b = new int[**5**];

И в этом примере вы также можете назначить значение для b[5].не должно быть ошибки компиляции. Но ошибка должна возникать во время выполнения.

Что касается другого метода, длину массива указывать не нужно.Это зависит от количества элементов массива.

0 голосов
/ 06 декабря 2011

Первый оператор называется массивом initialization, где создаются шесть переменных типа int и присваивается каждая переменная.Во втором выражении ключевое слово new создает 5 переменных типа int, начальное значение которых равно нулю.

Используя ключевое слово new, вы можете создать экземпляр массива в любое время.

int []a=new int[5];

for(int i:a)
  System.out.println(i);

a=new int[]{11,22,33};

for(int i:a)
  System.out.println(i);
0 голосов
/ 06 декабря 2011
int[] a = {1,2,3,4,5,6}; //First array
int[] b = new int[5];  //Second Array

Это просто два разных способа создания массива.Здесь действительно нет ООП.

Первый вариант лучше, когда вы знаете значения перед рукой, в противном случае второй вариант лучше.

0 голосов
/ 06 декабря 2011

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

Обе конструкции выполняют одно и то же (но с разными данными): создание массива и заполнение его данными.В частности, оба этих массива являются «уникальными объектами».

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

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