个人理解就是静态静态,顾名思义就是不会动它,数是静止的不可变的就是静态。
静态的只在运行的时候运行一次别的时候就不运行了,而且静态的不能会用非静态的数或者方法,因为非静态的数或者方法可能会变,而运行以后他有变化的情况下在静态里面调用如果刻意行得通,而静态只在刚开始运行的时候运行一次其他时候不运行,就导致了即使非静态的数或者方法改变了也不会接收到就互相矛盾,所以静态里面不能调用非静态的数或者方法
用静态关键字的场景,比如有日期,先常见对象然后后面调用这个日期,但是如果需要调用好几次那就要创建好几次对象,这时候用一个静态的就不需要了如下图:
class Person{
private Date birthDate;
public Person(Date birthDate) {
this.birthDate = birthDate;
}
boolean isBornBoomer() {
Date startDate = Date.valueOf("1946");
Date endDate = Date.valueOf("1964");
return birthDate.compareTo(startDate)>=0 && birthDate.compareTo(endDate) < 0;
}
}
修改过的:
class Person {
private Date birthDate;
private static Date startDate, endDate;
static {
startDate = Date.valueOf("1946");
endDate = Date.valueOf("1964");
}
public Person(Date birthDate) {
this.birthDate = birthDate;
}
boolean isBornBoomer() {
return birthDate.compareTo(startDate) >= 0 && birthDate.compareTo(endDate) < 0;
}
}