- 静态
static 可以理解为全局的,修饰变量,方法,代码块,内部类
静态变量
被static修饰的变量,static变量只有一个,被所有的对象(实例)共享。非线程安全,通常还和关键字final一起用,作为所有对象公用的资源或常量。
private static int count;
public static String str;
public static final String user = "user";
静态方法
类似于静态变量,静态方法也属于类,不属于实例。静态方法只能访问类的静态变量或者调用类的静态方法,通常静态方法作为工具方法,被其他类使用,而不需要创建类的实例。通常java程序的开始就是一个main()方法,它就是个静态方法.
public static void set(){}
public static int add(){}
静态块
静态块就是类加载器加载对象时,要执行的一组语句。它用于初始化静态变量。通常用于类加载的时候创建静态资源。我们在静态块中不能访问非静态变量。我们可以在一个类中有多个静态块,静态块只会在类加载到内存中的时候执行一次。
static{
System.out.println("hah");
String str = "enen";
add();
}
静态类 只要内部类才能声明为static,也可以说是静态内部类。只有静态内部类才能拥有静态成员,普通内部类只能定义普通成员。静态类跟静态方法一样,只能访问起外部类的静态成员。如果在外部类的静态方法中访问内部类,只能访问静态内部类。