aspose file tools*
The moose likes Java in General and the fly likes Static block and static variable Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Static block and static variable" Watch "Static block and static variable" New topic

Static block and static variable

Dipti Mishra

Joined: Jan 24, 2006
Posts: 22
Can anybody clearly explain me that what is executed first? A Static block, a static method or static variables? What is sequence of execution of these following lines?

public class Static
int x = 5;

static int x,y;
public static void main(String args[])
x--; myMethod();
System.out.println(x + y + ++x);

public static void myMethod()
y = x++ + ++x;

What will be the output? If you move the statis block below the static variable decalaration, why the output remains same.....

Please reply as soon as possible.

Naveen Raja

Joined: Jul 28, 2006
Posts: 10

As for i understood, the var i defined in the static block is no way affecting the output..because...its scope is confined to that block...
So the output will be 3

And if you define static block something like below.

static int x,y;
x = 5;
Output will be 23

Here order matters...if you interchange the stmts, you will get compilation error " illegal forward reference"...

So if static methods are initializing any of the static var then order matters..

That is what my understanding...
I agree. Here's the link:
subject: Static block and static variable
Similar Threads
a question about static clause
static block understanding
static doubt
Increment operator