Create an object without using new operator in java

Yes, we can create an object without using new operator in java.

Using newInstance() Method

If we know the name of the class and it has a public default constructor than we can create an object in the following way.

MyObject object = (MyObject) Class.forName("com.w3schools.MyObject").newInstance();

Using clone()

The clone() can be used to create a copy of an existing object.

MyObject anotherObject = new MyObject();
MyObject object = (MyObject) anotherObject.clone();

Using object deserialization

Object deserialization is nothing but creating an object from its serialized form.

ObjectInputStream inStream = new ObjectInputStream(anInputStream );
MyObject object = (MyObject) inStream.readObject();

Java interview questions on constructor