static关键字只能在下述五种情况下使用,static变量、static方法、static block、static 内部类、interface staic 方法
1、static变量
类中的static变量,并不是属于某一个对象的,或者类的,它是属于所有那个类对象的。通常static是和final关键字一起使用的(关于final关键字的用法可以看我另外一篇博客:http://blog.youkuaiyun.com/zhang_guyuan/article/details/62219027),可以被所有的对象使用,如果这个static变量不是private,我们可以直接通过类名调用,类似于C++的用法。
ClassName.StaticVariableName
举个列子
2、static方法
同static变量一样,static方法属于类,所有的对象都共享该方法。通常静态方法是我们想要暴露以供其他类使用的实用程序方法,而不需要创建实例。我们可以在所有的static方法中调用static方法,但是static方法却不能调用非static方法。此外我们也可以在interface中使用static方法
3、static block
Java静态块是当类由Java ClassLoader加载到内存时执行的一组语句。static block用于初始化类的static变量,它主要用于类加载时创建static 资源;我们不能访问静态块中的非静态变量。 我们可以在一个类中有多个静态块,虽然没有什么意义。 当类被加载到内存中时,静态块代码只执行一次。
3、static类
我们可以使用static关键字和嵌套类。 static关键字不能与顶级类一起使用。静态嵌套类与任何其他顶级类相同,并且嵌套只是为了方便包装。
4、static import
通常我们使用类引用访问静态成员,从java 1.5我们可以使用java静态import避免类引用。