public class a {
static int x;
x = 10;
public static void main(String[] args) {
System.out.println(x);
}
}上面的运行不对 下面是解释
static int x;
{x = 10;}那么是0如果写成
static int x;
static {x = 10;}
那么是10有人能给我解释一下吗?
static int x;
x = 10;
public static void main(String[] args) {
System.out.println(x);
}
}上面的运行不对 下面是解释
static int x;
{x = 10;}那么是0如果写成
static int x;
static {x = 10;}
那么是10有人能给我解释一下吗?
解决方案 »
- 新手求解答 急急急急急~~~~~~~~~~
- 下载了一个jgap_3.4.3_full.zip 遗传算法的包,但是不知道如何对电脑进行配置,高手快进
- JTable鼠标双击事件!
- 谁知道这个该用什么类什么方法啊?
- 如何将java保存为utf8编码?
- (eclipse版人气太差,借宝地一用)俺用eclipse做了个tomcat 的项目.俺想进行调试,可打了断点后程序还是停不下来!
- Object.wait() 和Thread.yield()有什么区别
- 怎样判断一个String是否可以转换为double?
- 关键字:事件 TextArea Button 在线等待……
- c# 即降支持跨平台, Java 如何应对???
- ubuntu--很奇怪的问题撒--
- java,数据库运行起来后程序出错
x是类属性,会被开始直接赋值为0 ,然后在调用main这个static方法时,它值是0 所以打印出0。在这里,调用main时候,x=10这个赋值没有机会被执行的 static int x;
static {x = 10;}这静态属性和静态代码块,都在类调用构造器之前执行,x=10 然后调用main时候 x已经为10 则打印出10
补充下 静态常量是可以在 static块中初始化的
自己看到static定义的代码块呢
程序的执行是先开始执行main方法的但是 如果有static静态初始化块的话则先执行的是静态块再执行main方法;public class a {
static int x;
static {x = 10;}//这是个静态块所以先执行它,
public static void main(String[] args) {//执行main方法时X的值已经变为10
System.out.println(x);//打印结果为10
}
}public
class a {
static int x;
{x = 10;}//程序没静态块,所以此句是没机会被执行到,
public static void main(String[] args) {
System.out.println(x);//打印结果为0
}
}