Існує п’ять різних способів створити об’єкт на Java,
1. За допомогою newключового слова → конструктор викликають
Employee emp1 = new Employee();
2. За допомогою newInstance()методуClass → викликати конструктор
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee")
.newInstance();
Це також можна записати як
Employee emp2 = Employee.class.newInstance();
3. Використовуючи newInstance()методConstructor → конструктор викликати
Constructor<Employee> constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
4. Використовуючи clone()метод → відсутній виклик конструктора
Employee emp4 = (Employee) emp3.clone();
5. Використання десеріалізації → відсутній виклик конструктора
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 = (Employee) in.readObject();
Перші три newключові слова методу і обидва newInstance()включають виклик конструктора, але пізніше два методи клонування та десеріалізації створюють об'єкти без виклику конструктора.
Усі вищезазначені методи мають різні байт-коди, пов'язані з ними. Прочитайте різні способи створення об’єктів у Java за допомогою Прикладу для прикладів та більш детального опису, наприклад, перетворення байтових кодів усіх цих методів.
Однак можна стверджувати, що створення масиву або рядкового об'єкта також є способом створення об'єкта, але ці речі більш специфічні лише для деяких класів і безпосередньо обробляються JVM, тоді як ми можемо створити об'єкт будь-якого класу, використовуючи ці 5 способів.