🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.comp.lang.java
Article #49

Help!Maybe it's very simple for you?

#49
From: Jack Dowson
Date: Wed, 25 Apr 2007 16:53
73 lines
2656 bytes
Hello,Everybody:
	I'm new to java.I'm now confused by the sequence of initializing
static members of a class.
	Here is an example which I wrote for testing:

class InitSequenceClassA{
	static int i=0;
	public InitSequenceClassA(){
		i=15;
		}
	public InitSequenceClassA(int i){
		this.i=i;
			}
	static void increment(){
		i++;
		}
	}
class InitSequenceDemo{
	public static void prt(String s){
		System.out.println(s);
		}
	InitSequenceClassA isc = new InitSequenceClassA(10);
	static InitSequenceClassA isc1, isc2;
	static{
		prt("isc.i=" + isc1.i+ "isc2.i=" + isc2.i);
	
		isc1 = new InitSequenceClassA(27);
		prt("isc1.i=" + isc1.i + "isc2.i=" + isc2.i);
	
		isc2 = new InitSequenceClassA(15);

		prt("isc1.i=" + isc1.i + "isc2.i=" +isc2.i);
	}	
	public static void main(String[] args){
		InitSequenceDemo d= new InitSequenceDemo();
		prt("d.i=" + d.isc.i);
		
		prt("isc.i=" + isc1.i+ " isc2.i=" + isc2.i);
		isc1.increment();
	
		prt("isc.i=" + isc1.i+ " isc2.i=" + isc2.i);
		prt("d.i=" + d.isc.i);
		}
	}


Compile and excute this class we will get output as follow:

isc.i=0isc2.i=0
isc1.i=27isc2.i=27
isc1.i=15isc2.i=15
d.i=10
isc.i=10 isc2.i=10
isc.i=11 isc2.i=11
d.i=11

The first three lines of the output,that is
isc.i=0isc2.i=0
isc1.i=27isc2.i=27
isc1.i=15isc2.i=15

What happend to create the first three lines?
I think it might be:
1.the loading of class InitSequenceDemo;
2.after the loading of method main,the creating of object d;
which is right?

And which of the above actions comes first?
I mean loading of a class where main method located and loading of
method main,which comes first?

Any help will greatly be appreciated!
Thanks in advance!
Technical Details
Message-ID: <f0o3gb$jou$1@news.cn99.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.cn99.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 10d5a2,d8a5adad2c9756f3,start
X-Google-Attributes: gid10d5a2,public
X-Google-Language: ENGLISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.cn99.com!not-for-mail
From: Jack Dowson <jckdwsn@aol.com>
Newsgroups: cn.comp.lang.java
Subject: Help!Maybe it's very simple for you?
Date: Thu, 26 Apr 2007 00:53:51 +0800
Organization: Bentium Ltd. (CN99)
Lines: 76
Message-ID: <f0o3gb$jou$1@news.cn99.com>
NNTP-Posting-Host: 222.178.10.192
Mime-Version: 1.0
Content-Type: text/plain; charset=GB2312
Content-Transfer-Encoding: 7bit
X-Trace: news.cn99.com 1177522507 20254 222.178.10.192 (25 Apr 2007 17:35:07 GMT)
X-Complaints-To: usenet@news.cn99.com
NNTP-Posting-Date: Wed, 25 Apr 2007 17:35:07 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.0 (Windows/20070326)