Hay cinco formas diferentes de crear un objeto en Java,
1. Usando la newpalabra clave → constructor llamarse
Employee emp1 = new Employee();
2. Usando el newInstance()método deClass → constructor llamarse
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee")
.newInstance();
También se puede escribir como
Employee emp2 = Employee.class.newInstance();
3. Usando el newInstance()método deConstructor → constructor llamarse
Constructor<Employee> constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
4. Usando el clone()método → sin llamada de constructor
Employee emp4 = (Employee) emp3.clone();
5. Uso de deserialización → sin llamada de constructor
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 = (Employee) in.readObject();
Los primeros tres métodos de newpalabras clave y ambos newInstance()incluyen una llamada al constructor, pero luego dos métodos de clonación y deserialización crean objetos sin llamar al constructor.
Todos los métodos anteriores tienen diferentes códigos de bytes asociados con ellos, Leer Diferentes formas de crear objetos en Java con ejemplos para ejemplos y descripciones más detalladas, por ejemplo, conversión de códigos de bytes de todos estos métodos.
Sin embargo, se puede argumentar que crear una matriz o un objeto de cadena también es una forma de crear el objeto, pero estas cosas son más específicas solo para algunas clases y son manejadas directamente por JVM, mientras que podemos crear un objeto de cualquier clase usando estas 5 formas.