Ada lima cara berbeda untuk membuat objek di Jawa,
1. Menggunakan newkata kunci → konstruktor dipanggil
Employee emp1 = new Employee();
2. Menggunakan newInstance()metodeClass → constructor dipanggil
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee")
.newInstance();
Dapat juga ditulis sebagai
Employee emp2 = Employee.class.newInstance();
3. Menggunakan newInstance()metodeConstructor → constructor dipanggil
Constructor<Employee> constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
4. Menggunakan clone()metode → tidak ada panggilan konstruktor
Employee emp4 = (Employee) emp3.clone();
5. Menggunakan deserialisasi → tidak ada panggilan konstruktor
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 = (Employee) in.readObject();
Tiga metode pertama newkata kunci dan keduanya newInstance()termasuk panggilan konstruktor tetapi kemudian dua metode kloning dan deserialisasi membuat objek tanpa memanggil konstruktor.
Semua metode di atas memiliki bytecode berbeda yang terkait dengannya, Baca berbagai cara untuk membuat objek di Java dengan Contoh untuk contoh dan deskripsi yang lebih terperinci misalnya konversi bytecode dari semua metode ini.
Namun orang dapat berargumen bahwa membuat objek array atau string juga merupakan cara untuk membuat objek tetapi hal-hal ini lebih spesifik untuk beberapa kelas saja dan ditangani langsung oleh JVM, sementara kita dapat membuat objek dari kelas apa saja dengan menggunakan 5 cara ini.