Esistono cinque modi diversi per creare un oggetto in Java,
1. Usando la newparola chiave → costruttore viene chiamato
Employee emp1 = new Employee();
2. Utilizzando il newInstance()metodo diClass → costruttore viene chiamato
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee")
.newInstance();
Può anche essere scritto come
Employee emp2 = Employee.class.newInstance();
3. Utilizzando il newInstance()metodo diConstructor → costruttore viene chiamato
Constructor<Employee> constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
4. Utilizzo del clone()metodo → nessuna chiamata del costruttore
Employee emp4 = (Employee) emp3.clone();
5. Utilizzo della deserializzazione → nessuna chiamata del costruttore
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 = (Employee) in.readObject();
Le prime tre newparole chiave dei metodi ed entrambe newInstance()includono una chiamata del costruttore, ma in seguito due metodi di clonazione e deserializzazione creano oggetti senza chiamare il costruttore.
Tutti i suddetti metodi hanno diversi bytecode associati, Leggi Diversi modi per creare oggetti in Java con esempi per esempi e descrizioni più dettagliate, ad es. Conversione bytecode di tutti questi metodi.
Tuttavia, si può sostenere che la creazione di un oggetto array o stringa è anche un modo per creare l'oggetto, ma queste cose sono più specifiche solo per alcune classi e gestite direttamente da JVM, mentre possiamo creare un oggetto di qualsiasi classe utilizzando questi 5 modi.