static关键字总结
简介:被static关键字修饰的方法或者变量不需要依赖new出来的对象进行访问,只要类被加载了,就可以通过类名去进行调用。
static可以修饰:成员变量、普通方法、方法块(静态代码块)
从JVM的类加载机制的角度讲,静态资源是类初始化的时候加载的,而非静态资源是类new的时候加载的
static定义属性(成员变量)
被static修饰的变量时属于类变量,可以直接通过类名.变量名来进行访问,而不需要new出一个对象进行访问(但是可以用对象.变量名进行访问***不推荐***,)。
静态变量和非静态变量的区别:
静态变量被所有对象共享,当类在初次加载时会被初始化,在内存中只有一个副本。
非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
注意:static是不能修饰局部变量的,只能修饰成员变量。会发生编译报错,如下图所示:
static修饰方法
被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个对象来。