关于static

    被static修饰的域成员称为静态域成员,静态成员是属于类所有,而不是个别的对象。静态变量与静态方法的作用是为了提供共享的数据或工具方法,例如将数学常用的常数或计算公式,以static声明,之后可以把这个类当作工具类。通过类名称来管理与取用这些静态数据或方法,例如J2SE所提供的Math类,就有Math.PI这个静态常数,以及Math.Sin()等静态方法可以直接使用。

    由于静态成员是属于类而不是对象,所信当调用静态方法时,并不会传入对象的参考,即静态方法中不会有this参考名称。由于没有this名称,所以在Java的静态方法中不允许使用非静态成员。因为没有this来引用至对象,也就无法辨别要存取的是哪一个对象的成员。

    Java在使用到类时才会加载类至程序中。如果在加载类时,希望先进行一些类的初始化工作,可以使用static定义一个静态区块,并在当中编写类载入时的初始化工作。例如:

public class SomeClass {

    static {

        //一些初始化程序代码

    }

    ...

}

    在类被加载时,预设会先执行静态区块中的程序中的程序代码,且只会执行一次。例:

class A {

   static {

        System.out.println("类被载入");

    }

}

public class Test {

    public static void main(String[] args) {

        A a = new A();

    }

}

    类A只定义的静态区块,主要是为了测试类被加载时是否执行访区块。在使用new来建立A的实例时,类A会被加载,加载之后预设会执行静态区块中的内容,所以程序执行结果会输出“类被载入”。

你可能感兴趣的:(职场,static,休闲,静态区块)