static 学习笔记

来源:互联网 发布:中世纪2全面战争优化9 编辑:程序博客网 时间:2024/06/10 04:25
  • static不能用于局部变量,只能作用于域(同样初始化后的值是默认的,基本数据一般就是0那些,对象为null)
  • 对于存储来说,只占用一份存储区域,且是在类加载前存储。而这个存储(创建)是发生在调用了对应的类对象时的。
public class TestStatic {    public static void main(String[] args) {        System.out.println("test1 " + testClass.test1);        System.out.println("testString " + testClass.testString());    }}class TestClass {    static int test1;    static {        int testBlock = 1;        System.out.println("testBlock" + testBlock);    }    static String testString() {        return "Test the String is ok";    }}
  • 首先创建对象是在调用TestClass后产生的,然后这里就涉及到了初始化的顺序,首先创建对象时,是先初始化类中定义的static域,比如说test1会默认值为0,static block执行了其中的println语句,然后再到方法的创建。
testBlock1test1 0testString Test the String is ok(This is the result