public class StaticBlock {
public static void main(String[] args) {
/*String schoolName = Student.getSchoolName();
System.out.println(schoolName);*/
Student stu = new Student();
Student stu1 = new Student("张三",23);
}
}
class Student {
private String name ="";
private int age;
private static String schoolName ="太原师院";
内存分配。静态静态,就是当类被加载时,这个内存就静静的待在这里,就已经存在,而普通成员变量,只有类被实例化时才分配内存。
调用方法。成员变量需要对象才能被调用;而静态成员变量可以直接通过类来调用,当然也可以直接调用
生命周期。静态成员变量从类被加载开始到类被卸载,一直存在;普通成员变量只要在类被实例化也就是创建对象是才开始存在,一直到对象结束,生命也告终。
共享方式。静态成员变量是全类共享的,即使不是对象,也可以调用,并且内存不变;普通成员变量是每个对象单独享用的,就是说你这个对象有一个 int i=1 ,我再给该类创建一个新的对象,他也有一个 int i ,但他可以不等于1,可以等于5,也可以等于10,但无论等于多少,都不会影响之前对象的i的值,而静态成员变量不是这样。
static对性能的影响
为什么说 static块 可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。static final 用来修饰成员变量和成员方法,可简单理解为“全局常量”, 常量必须要加static关键字修饰。