static:静态的,可以修饰属性 方法 代码块 内部类,这些被stctic修饰之后,会随着类的加载而加载。具有公共的特性。因为随着类的加载而加载,所以我们可以从生命周期的角度去理解static。
修饰属性,被叫做静态变量或者类变量 为什么被叫做类变量,因为它会随着类的加载而加载,早于对象的创建,可以在不创建对象的情况下直接被类调用。位置:在方法区中。
修饰方法:被叫做静态方法,类方法。直接通过类调用。 静态方法中,只能调用静态变量或者静态方法。
static的使用举例:单例模式
单例模式分为懒汉式和饿汉式:代码举例:
class Bank{
//单例模式 饿汉式
//1.私化类的构造器
private Bank(){}
//2.创建一个静态的私有化对象
private static Bank bank = new Bank();
//3.创建一个公共的可调用的方法
public static Bank getBank(){
return bank;
}
}
class Bank{
//单例模式 懒汉 (考虑线程安全)
//1.私化类的构造器
private Bank(){}
//2.声明一个静态的私有化对象
private static Bank bank = null;
//3.创建一个公共的可调用的方法
public static Bank getBank(){
if(bank==null){
synchronized(Bank.class){
if(bank==null){
bank = new Bank();
}
}
}
return bank;
}
}