This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Performance and the fly likes VARIABLE INITIALIZATION TIME Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Performance
Bookmark "VARIABLE INITIALIZATION TIME" Watch "VARIABLE INITIALIZATION TIME" New topic
Author

VARIABLE INITIALIZATION TIME

KRISH DOSS
Greenhorn

Joined: Feb 16, 2002
Posts: 19
Can any one explain me about variables initialization in java?.
A class has 20 instance(primitive) variables
and all variables have been explicitly assigned
their default values.
a). does it mean that these variables are initialized twice when instance of the class
is created?.
can anyone explain complete picture of what happens , when variables are explicitly declared/undeclared?
thanks
krishna
Peter Haggar
author
Ranch Hand

Joined: Jan 03, 2001
Posts: 106
Originally posted by KRISH DOSS:

a). does it mean that these variables are initialized twice when instance of the class
is created?.

Yes.
When memory is allocated for an object, all its statics and instance variables are initialized to their default values. That's null for references, false for booleans, and 0 for numerics. Therefore, if the code initializes these same variables to their default values in the constructor, or when they are declared, the initialization happens twice, unless the duplicate initialization is removed by a runtime optimizer. No javac compilers I have tried remove it. For example:

and

Both of these classes are inefficient and generate the same bytecode shown here:

The assignment of i and s do not need to occur, but there is bytecode to do so. Note that local variables have no default value and must be explicitly initialized.
Peter Haggar


Senior Software Engineer, IBM
author of: Practical Java
KRISH DOSS
Greenhorn

Joined: Feb 16, 2002
Posts: 19
Thanks Peter
 
Don't get me started about those stupid light bulbs.
 
subject: VARIABLE INITIALIZATION TIME
 
Similar Threads
Initialization
what is the purpose for allowing local variables as abstract ?
What is the deal with Constructor
Reg. class initialization
Arrays