日期:2014-05-20  浏览次数:20862 次

怎么static 还可以这样用呀? 请教各位!!!
public   class   Static   {
       
        //这里是什么意思呀   怎么static   还可以这样用呀?
      static   {
              int   i=5;
        }
       
      static   int   i,j;
      public   static   void   main(String[]   args){
          i--;
          method();
          System.out.println(i+   j   +   ++i);
      }
      public   static   void   method(){
      j   =   i++   +   ++i;
      }
}


  //这里是什么意思呀   怎么static   还可以这样用呀?
      static   {
              int   i=5;
        }
这样做有什么作用呀?

请教各位

------解决方案--------------------
static 数据初始化

== public static i = 10
------解决方案--------------------
静态初始化代码块
在类加载的时候执行

这里的作用就是在开始直接给i赋值为5,不然在初始化i,j的时候是给0值的
------解决方案--------------------
public class StaticTest{
static {
int i=5;
System.out.println(i);
}
}
==============================
你可以试着执行一下上面的代码,能很好的说明static{}这个静态初始化代码块市在什么时候执行的,希望对你有帮助!
------解决方案--------------------
static 可以修饰属性,方法,为什么就不能修饰块呢?
这儿就是修饰块.
------解决方案--------------------
静态块
------解决方案--------------------
静态初始化块,他在类加载时调用

与其区别的是初始化块,在类创建时调用,如
public class Static {

{
int i=5;
}

static int i,j;
public static void main(String[] args){
i--;
method();
System.out.println(i+ j + ++i);
}
public static void method(){
j = i++ + ++i;
}
}

------解决方案--------------------
biggestfinger:
public class StaticTest{
static {
int i=5;
System.out.println(i);
}
}


你的代码我运行了,结果是5。但是后面还跟了一句话
Exception in thread "main " java.lang.NoSuchMethodError:main


------解决方案--------------------
静态初始块
------解决方案--------------------
当类被载入时,自动执行static静态代码块,且只被执行一次经常用于类属性的初始化