static关键字用来声明不需要依赖实例且线程间共享的内容。
可以声明静态变量、静态方法、静态代码块、内部静态类
注:类加载时JVM就会为静态属性分配内存并初始化。
修饰属性
1.不能修饰局部变量,只能修饰全局变量;
2.通过类名.变量名直接调用;
3.代码未赋初值,自动赋于默认值;(局部变量不会自动赋值)
4.如果通过对象访问静态属性编译器会报警告;
5.类加载时,先执行静态属性、再执行静态代码块。
修饰方法
1.通过类名.方法名直接调用;
2.方法内部可以调用静态属性、静态方法,但不能直接调用非静态的;
3.实例方法内部可以调用静态方法、静态属性;
4.静态方法与非静态方法的区别在于有无this这个隐式参数。
修饰代码块
1.随着类加载时执行,只会执行一次;
2.主要用于进行一些复杂的初始化工作;
3,。内部不能直接调用非静态方法、不能写方法。
修饰内部静态类
1.在普通类内部可以直接调用,其他类调用可通过普通类名.内部静态类名;
2.内部代码编写要求与普通类区别不大;
3.静态内部类可以直接调用普通类的静态属性和方法。