static 包含的语句在初始化时候一次性装入内存,而且仅仅执行一次!

解决方案 »

  1.   

    实例变量与类变量可以通过两种方法在类中存储数据───作为实例变量和类变量.实例变量是特定于对象的,如果你有两个对
    象(即一个类的两个实例),每一个对象中的实例变量独立于另一个对象中的实例变量的;另一方面,两个对象的
    类变量均指向相同的数据,并因此面保存相同的值,换句话说,类变量被类中的所有对象共享.差点忘了,它们在
    形式上的区别,类变量在声明时比实例变量多一个static.
    eg:
    class data
    {
    public int intdata=0;//显然,intdata在这儿是实例变量
    }
    public class exam
    {
    public static void main(String[] args)
    {
    data a,b;
    a=new data();
    b=new data();
    a.intdata=1;
    System.out.println("b.indata="+b.intdata);
    }
    }
    运行结果:
    b.intdata=0
    结果分析:
    可以看出,a.intdata的值虽然变了,但并没有影响b.intdata.但是如果在data类中声明intdata时,在其前
    面加上static就变成类变量了(即:public static int intdata=0;),则此时运行结果会变为:
    b.intdata=1
    这次a.intdata值的改变可把b.intdata影响了,事实上,对象a和b的类变量均指向相同的数据,所有值一
    样,这就是类变量的作用.
      

  2.   

    在程序开发时,我们经常希望一个变量和方法不随对象的改变而改变,甚至在没有创建对象时也能访问数据和方法,这时就可以在数据和方法上加上Static关键字,被Static修饰的数据就叫做静态变量(数据)而方法就叫静态方法。静态变量在内存中的地址是相同的,所以对于同一类的不同对象,它们静态变量的值肯定是相同的