静态块是类里面的构造器,对象有构造器那么类也有构造器,类里面的构造器叫作初始化方法。也就是new一个对象他会通过一个构造器。加载一个类,也有被初始化的一片代码,这个就称之为静态块。一个类里面能够有不少个静态块,静态块的运行过程是,若是一个类里面有多个静态块,那么他是从上到下运行的。如图7.5所示:htm
图7.5对象
他是从上到下的运行,可是须要哪个的时候他就会被加载实例化,但静态块仍是从上到下执行。里面能够包含不少代码 下载 ,可是静态块不能被实例的成员访问。如图7.51所示:blog
图7.51内存
静态块是类被加载的时候就会被建立,静态块会被4种方式加载。第一种new对象静态块会初始化激发类被加载。如图7.52所示:字符串
图7.52get
第二种访问静态的属性,也会激发类被加载。如图7.53所示:it
图7.53下载
第三种调用里面的静态方法,也会触使类加载起来。如图7.54所示:方法
图7.54im
第四种用Class.forName(“Test”);能够经过字符串加载起来,这种方式叫作动态加载,也能够触使一个类加载起来。如图7.55所示: 下载
图7.55
常量成员不能被初始化加载如图7.56所示:
图7.56
打印的是10,可是静态块的东西没有打印出来,那就说明这个类没有被加载起来,由于他是一个静态的常量,静态的常量不属于类的内存,他没有分配在这个类内存里面,他不须要初始化这个类。静态的属性为何能,由于静态的属性内存必需要分配在这个类里面,因此他会被初始化加载,因此图中的静态块不会被加载起来。