File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes Understanding static reference to new object Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Understanding static reference to new object" Watch "Understanding static reference to new object" New topic

Understanding static reference to new object

Mark O' Sullivan
Ranch Hand

Joined: Aug 17, 2009
Posts: 160
I'm a bit confused about the use of the static keyword in the following case:
In 1 class I see this declared at the top of the class say called Data:

in constructor of same class:

What exactly does above do? I know the general stuff about:
(1) making a static reference to an object at start of class.
(2) making a static reference to a static method and initializing variables there.
I understand that is a static reference and only 1 copy exists for the class, but in the constructor is 1 creating a new object each time it's called for this static reference? Is there a point to this? Any help much appreciated as I find this confusing.

Francisco Montes
Ranch Hand

Joined: Sep 30, 2009
Posts: 30
What i see here is that the value of the static variable (for which, indeed, there is only one copy at class level) will always be changed everytime a new instance of that class is created.

Like you said, maybe it is not so useful to do something like that. Then again, maybe it is for that particular project. :-)

SCJP 1.6
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46397
It might be better to initialise a static variable like that in a static initializer block.
John de Michele

Joined: Mar 09, 2009
Posts: 600

Agreed. I would also argue that the original code is an example of how not to use static variables.

I agree. Here's the link:
subject: Understanding static reference to new object
It's not a secret anymore!