Shahab Khan Shahab Khan - 3 months ago 12
Java Question

How did new operator initialize the memory using the contructor?

RealEstate v=new RealEstate();


I have used this
new
keyword with
RealEstate()
. I know
new
allocates memory and initializes the memory using constructor
RealEstate()
.

But my question is: how did this
new
operator initialize the memory using the contructor?

rD. rD.
Answer

new operator doesn't actually uses the help from constructor to allocate memory. It has nothing to do with constructor. Basically Java's version of malloc is new.

new operator:

  • invokes object constructor
  • allocates memory and returns reference to that memory

Constructor is executed separately to perform any operations during initialization, like allocating values to objects and variables. If no Constructor is defined, then JVM will create default constructor and will allocate default values:

Data Type       Default Value (for fields)
double          0.0d
char            'u0000'
String          null
boolean         false
Any Object      null

So, new operator only allocates memory and returns reference to that memory.

See the documentation:

The new operator instantiates a class by allocating memory for a new object and returning a reference to that memory. The new operator also invokes the object constructor.

Comments