static修饰符:
static修饰的资源属于类,静态方法中不能使用this关键字;类创建时静态资源就会被加载到方法区,静态资源只有一份,所有类对象实例共享
注意:【不能和abstract同时用】
静态代码块:
1, 在java虚拟机中类加载会执行这些静态代码块。 如果类中有多个静态代码块,会从上到下依次执行。
2,静态代码块只能定义在类里面,不能定义在方法里面。
3, 静态代码块里的变量都是局部变量,只在当前代码块内有效。
4, 静态代码块只能访问类的静态成员, 而不允许[直接]访问实例成员。
5, 【静态代码块用来给静态变量赋初始值】。
6, 静态代码块主要用于类的初始化。
注意:它只执行一次,并在main函数之前执行。
静态方法:
静态方法【不能(可以通过创建对象的方法调用)】直接调用非静态资源 静态方法可以直接调用其他静态资源(不包括静态代码块)
静态方法特性:
1,静态方法必须被实现: 静态方法用来表示某个类所特有的功能,这种功能的实现不依赖于类的具体实例,也不依赖它的子类。
2,静态方法不存在重写这一说
3,父类的静态方法不能被子类覆盖为非静态方法
4,父类的非静态方法不能被子类覆盖为静态方法
5,静态方法在内存中只有一份, 无论该类有多少个实例, 都共用一个内存。
6.静态方法可以直接使用,利用全类名调用
Test5.show(); 同一个包 java -cp bin com.test.ch8.Test5
7.静态方法只允许访问静态成员。
8.静态方法中不能使用this(因为this是与实例相关的)。