class StaticStuff
{
static int x=10;
static { x+=5;}
public static void main(String args[ ])
{
System.out.println("x=" + x);
}
static { x/=3;}
}
今天遇到这样一个程序,运行结果是X=5,可能是我对static不太熟悉的原因吧,一时看不出来这个程序是怎么做的,请大家帮忙指点下,谢谢了!
{
static int x=10;
static { x+=5;}
public static void main(String args[ ])
{
System.out.println("x=" + x);
}
static { x/=3;}
}
今天遇到这样一个程序,运行结果是X=5,可能是我对static不太熟悉的原因吧,一时看不出来这个程序是怎么做的,请大家帮忙指点下,谢谢了!
解决方案 »
- Haspmap top出最大的100个,或者最小100个
- 试一下发图
- 还有一个题目 有空的请看一下。
- GUI 简单提问 顶者有分.
- 请问大家如何制作 JAVA SWING 的安装文件? .exe 类型的
- 晕,为什么我已经安装了java 虚拟机还是不能在IE正确显示applet的?
- 请问如何获取到当前方法名称?马上给分!
- 用GregorianCalendar 类怎样得到本周星期一是几月几号
- org.w3c.dom.Node的getChildNodes()方法的迷惑
- 怎样检测一个对象的实例的存在,并且删除它?程序是怎样实现的?谢谢!
- 动态代理的几个问题
- 我是sun公司jdk的本地化工程师,您最希望java哪一部分被本地化(翻译成中文)
static初始化
x =10
x = 15
x = 5然后main开始运行。
打印X,就是5了
1. 类装载,
2. static 成员初始化,
3. 执行各个static{ }块中的代码,
4. 执行main函数.
就是这样.
static { x+=5;System.out.println("x1=" + x);} public static void main(String[] args) {
System.out.println("x=" + x);
}
static { x/=3;System.out.println("x2=" + x);}
结果:
x1=15
x2=5
x=5
一个类只有一个static,此类的所有对象共享此static
类装载不一定就要实例化对象, 比如Class.forName(), 就只是装载类, 而不创建任何实例.
静态的自由块,只有在被调用的第一次才执行~
先static ,所以static int x=10;
static { x+=5;
执行,然后是main的 static { x/=3;}
然后打印
然后才是里面的method,不过不要这样写类就行了:
public class Tester{ private static int i=method(); private static int j= 10; public static void main(String[] args){
System.out.println(i);
}
static int method(){
return j;
}
}
//hehe,结果很有趣的
{
public One(String str)
{
System.out.println(str);
}
}
class Two
{
One one_1 = new One("one-1");
One one_2 = new One("one-2");
static One one_3 = new One("one-3");
public Two(String str)
{
System.out.println(str);
}
}
public class Test
{
static Two two_3 = new Two("two-3");
public static void main(String[] args)
{
System.out.println("Test main() start...");
Two two_1 = new Two("two-1");
System.out.println("------------");
Two two_2 = new Two("two-2");
}
}
/****************************输出结果***********************************/one-3
one-1
one-2
two-3
Test main() start...
one-1
one-2
two-1
------------
one-1
one-2
two-2相信楼主应该理解了吧,Welcome to MY Blog:http://blog.csdn.net/start_java