static表示不要实例化就可以使用。被static修饰的成员变量和成员方法不依赖类特定的实例,被类的所有实例共享。
对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存
分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
一般在需要实现以下两个功能时使用静态变量:
在对象之间共享值时(多个变量共享一个值:如所有学生公用一个变量学费)
方便访问变量时
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,任何一个该类的对象去修
改它时,修改的也是同一个变量。
静态区域块只被执行一次,且自动执行不需实例化。利用静态代码块可以对一些static变量进行赋值。
类变量原则上用类方法去访问;类方法中不许访问非静态变量,反之可以;静态方法中不能用this和super关键字。
类方法属于类相关的、公共的方法
static方法独立于任何实例,static方法必须被实现,而不能是抽象的abstract。
一般类内部的static方法也是方便其它类对该方法的调用。
如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。