static关键字的作用主要作用有两个,如下:
1.为特定类型的数据或对象分配单一的存储空间,与对象的个数无关,可以在单例模式得以提现;
2.实现变量或方法,而不需要对象的创建就能够实现。
(1)static成员变量:
成员变量有static静态变量与非静态变量,其中静态变量是属于类的,而非静态变量是属于方法的。静态变量可以通过
类名.变量名或者对象名.变量名来调用,且只要静态变量所在的类被调用,那么这个静态变量就会被调用。
(2)static静态方法:
静态方法是类的方法,不同于非静态方法,静态方法可以在不用创建对象的情况下就进行调用。在静态方法中不能使用this
和super关键字,因为this关键字是对调用此方法的对象的引用,即是作用在对象层面的,而静态方法又是可以由类直接调
用的,有可能就是当静态方法调用后对象可能还没有创建。super关键字同样是对父类对象的引用,同时很重要的就是静态 是优先于对象存在的,故在静态方法中是不能使用this和super关键字的。
(3)静态代码块:
静态代码块是用来初始化的,在类被调用时,jvm就会进行执行静态代码块中的内容,如果有多个静态代码块,jvm会按照
顺序类执行,且静态代码块只会执行一次。
附单例模式方法:
package danli;
public class DemoDanli {
private static DemoDanli danli = null;
private DemoDanli() { // 单例模式不能多次创建对象,只能给出一个创建对象的方法,同时私有化构造方法
}
public static DemoDanli getDemoDanli() { // 在没有创建对象的 时候才能创建对象
if (danli == null) {
danli = new DemoDanli();
}
return danli;
}
}