静态变量的意义,什么时候用和作用

解决方案 »

  1.   

    静态变量有着一个共享的内存地址。也就是说如果你对一个Class创建多个对象,静态变量不会应为你创建多个对象而创建相应的变量。如果你Class有一个函数来改变一个静态变量的值的话,你用另外个实例化后的对象来输出这个静态变量所含的值,就会输出之前改变过的那个值。
      

  2.   

    静态变量就是用static关键字修饰的变量,静态变量的地址和值都存放在堆中,存取速度很快,静态变量具有全局共享性,可以节省系统内存开销、共享资源。
    多个线程对象共享的变量需要声明为静态变量。
    只需赋一次值,以后就不需要改变值的变量,最好声明为静态变量。
      

  3.   

    属于类,当类创建时谁类一起创建。static修饰。
      

  4.   

    静态变量就是类变量。
    它的特性是:
    1、初始化:在类在加载(和链接)时被初始化,或者在类在第一次“主动使用”时初始化,例如你调用了一个类的类变量时,就是促使这个类的所有类变量被初始化。
    2、共享:类变量是和类一起放在内存的方法区里(而不是堆中),可以在没有创建对象的情况下直接访问。所有这个类的对象访问到的类变量将是同一个。
    3、可以被修改。public class Base{
    private static int num ;
    static{
    num = 15;
    System.out.println("Init the static field !");
    }
    public static void modify(){
    Base.num = 17;
    System.out.println("static field has been changed!");
    }
    public static void main(String[] args){
    System.out.println("static field:" +Base.num);
    Base.modify();
    System.out.println("static field:" +Base.num);
    Base base1 = new Base();
    Base base2 = new Base();
    System.out.println("static field in object base1:" +base1.num);
    System.out.println("static field in object base2:" +base2.num);
    }
    }/*~output:
     * Init the static field !
     * static field:15
     * static field has been changed!
     * static field:17
     * static field in object base1:17
     * static field in object base2:17
    */