参考文章:
https://www.cnblogs.com/dolphin0520/p/3799052.html
static的应用:
1.static是为了在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。
只要类被加载了,就能通过类名进行访问。
2.static 可以用来修饰类的成员方法,类的成员变量
静态方法是不可以调用非静态方法,但是非静态方法能够调用静态方法, 因为静态方法是在类中的,而非静态方法必须要以来具体的对象才能被调用
static变量: 称为静态变量,静态变量可以被所有的对象所共享,在内存之中只有一个副本,它当且仅当在类初次加载时才会被初始化,而非静态变量时对象所拥有的,在创建对象的时候被初始化,存在多歌副本, 各个对象副本之间互相不影响。
3.static修饰代码块来优化程序性能:原理是static修饰的部分只会在类加载的时候执行一次
常见误区:
- static关键字不会影响到变量或者方法的作用域和权限, 在Java之中能够影响访问权限的只有private, public, protected关键字
- 可以通过this来访问静态成员变量
public class Main {
static int value = 33;
public static void main(String[] args) throws Exception{
new Main().printValue();
}
private void printValue(){
int value = 3;
System.out.println(this.value); //输出为33, 因为是通过this.value调用了静态变量。printValue只是一个局部变量,不会和this相互关联。
}
}