Ключова дума new
Запазена дума – new
Запазената дума в Java „new“ :
- Използва се при създаване на инстанции на клас;
- Заделя памет по време на изпълнение на програмата (runtime);
- Запазва памет в heap-а и връща референция към тази памет;
- Извиква конструктора на обекта.
Person firstPerson = new Person();
Създава нов обект от класа Person с помощта на конструктора по подразбиране (без аргументи).Полетата на обекта се инициализират със стойности по подразбиране или със стойности, зададени в класа.
Person secondPerson = new Person("Plamen", 20);
Тук при създаване на обекта, полетата се инициализират със стойности по подразбиране или със стойности, зададени в класа.
Инициализация на масиви с new
Ключовата дума new се използва и за създаване на масиви. При това действие се заделя памет за определен брой елементи.
Пример:
int[] numbers = new int[5];
Това създава масив от 5 цели числа, като всички стойности първоначално са 0.
Може да се комбинира с директна инициализация:
String[] names = new String[] {"Ivan", "Maria", "Georgi"};
или в съкратен вид (без new):
String[] names = {"Ivan", "Maria", "Georgi"};
Статични блокове и new
Статичните блокове в Java са специални блокове код, които се изпълняват веднъж при зареждането на класа в паметта, преди да бъде създадена каквато и да е инстанция чрез new.
Пример:
public class Example {
static {
System.out.println("Статичният блок се изпълнява при зареждането на класа.");
}
public Example() {
System.out.println("Конструкторът се извиква при създаване на нов обект с new.");
}
public static void main(String[] args) {
Example ex1 = new Example();
Example ex2 = new Example();
}
}
Изпълнение:
Статичният блок се изпълнява при зареждането на класа.
Конструкторът се извиква при създаване на нов обект с new.
Конструкторът се извиква при създаване на нов обект с new.
- Статичният блок се изпълнява само веднъж – при зареждане на класа в JVM.
- Конструкторът се извиква всеки път, когато се създава нов обект чрез new.