STATIC:
1.可以聲明變量,加載時初始化變量,并賦值;
2.聲明一個方法,加載時初始化該方法的引用;
3.聲明一個類,加載時初始化該類中的變量和語句,此類中只能有變量和語句,不能有方法。

 在Java中你要調用一個class某一個方法時  
  你必須   你顯示列化它  
  或者你把它申明為   靜態的(static)  

SUN公司的一道測試題:

public class X{
     public static void main(String[] args){
      String s=new String("Hello");
      modify(s);
      System.out.println(s);
   }
   
   public static void modify(String s){
      s+=" World";
      }

}

what is the result?
分析一下:
1.執行main,定義了字符串s 并賦值hello
2.調用方法modify(變量S) 我們注意到 modify方法是靜態的,即他在內存中地址是固定的。也就是說不管上面的方法引用modify時 傳過來的變量S是多少,對于modify方法都不重要,因為他的作用是把自己的S變量改變。
而外面的 引用 不起任何的作用;
把這個題目改改就好理解了:
public class X{
     public static void main(String[] args){
      String s=new String("Hello");
      modify(s);
      System.out.println(s);
   }
   
   public static void modify(String s){
      s+=" World";
   System.out.println(s);
      }

}

result: HelloWord
         Hello

3.有一點需要注意的是,當傳過來的變量S是個數組,前面定義了S[0],傳的是S(起始地址)這種修改變的有意思了,也變得有意義了。modify才真正的有用