总结于为学员static关键词教程 http://www.weixueyuan.net/view/6003.html

static关键词

static变量

static 修饰的变量我们称之为静态变量,没有用 static 修饰的变量称之为实例变量,他们两者的区别是:

  • 静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且 JVM 也只会为它分配一次内存,同时类所有的实例都共享静态变量,类似全局变量,可以直接通过类名来访问它。

  • 但是实例变量则不同,它是伴随着实例的,每创建一个实例就会产生一个实例变量,它与该实例同生共死。

static方法

static 修饰的方法我们称之为静态方法,我们可以通过类名对其进行直接调用。由于他在类加载的时候就存在了,它不依赖于任何实例, 不能在静态方法中访问实例变量,只能访问自身类的静态变量。

    public class test {
    private static int i;

    public test(){
        i = 0;
    }
    static void Test(){
        i = i + 10;
        System.out.println("i is: " + i);
    }
    public static void main(String[] args){
        test t1 = new test();
        test t2 = new test();
        t1.Test();
        test.Test();

    }
}
    
i is: 10
i is: 20

我们可以看到, 引用test()静态方法时候要用类名test进行调用, 而用引用t1是无法调用的


lpy1990
26 声望10 粉丝