一般来说,我们用new来创建对象,这时,数据的存储空间才会被分配,它的方法才能被外界调用
但是,基于new方法创建对象的时候,有两种情况不能解决
1:只想为某特定域分配单一的存储空间,而不考虑要创建多少对象
2:即使没有创建类的对象,也能调用这个类的某个方法
而当我们通过static关键字则可以解决这方面的需求
当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起
static关键字用来声明某成员属于类,而不是属于类的实例。举个例子,如果一个类中的某个成员
被声明为static,那么它就能在这个类的对象创建之前使用,而不需要实例化一个对象之后再调用
static可以修饰方法,变量,代码块
在静态方法中,只能调用静态的方法和静态的数据;如果要调用非静态的成员,可以用过创建类对象来调用;
于此同时,普通方法则可以调用静态成员与非静态成员
静态代码块只会在类第一次装载时被初始化一次,类中不同的静态代码块按它们在类中出现的顺序执行,并且,程序运行时
静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。
对于静态成员,在可访问的情况下,可以通过“类名.成员”来调用,也可以通过创建对象的方式来调用