static
static可以用来修饰类的成员变量、成员方法和代码块,分别称为
- 静态变量
- 静态方法
- 静态代码块
静态变量和静态方法都可以直接通过类名访问 "类名.变量" 或 "类名.方法()",
二者不依赖于类的实例,
被类的所有实例共享,可以起到节省内存空间的作用。
静态代码块,在java虚拟机加载类时,就会被执行。
静态变量和实例变量的区别
- java虚拟机在加载类的过后才能中,只为静态变量分配一次内存,可以通过类名直接访问;
- 每创建一个实例,就会为实例变量分配一次内存;
静态方法
静态方法不需要通过他所属类的任何实例都可以被调用,因此在静态方法中,
- 不能使用this和super关键字,
- 也不能直接访问所属类的实例变量和实例方法,
- 但可以直接访问所属类的静态变量和静态方法,
- 不能被定义为抽象方法,static和abstract修饰符是一对“冤家”
静态代码块与静态方法一样,也不能直接访问类的实例变量和实例方法
final
- final修饰的类不能被继承,没有子类;
- final修饰的方法不能被子类覆盖,即不能重写方法;
- final修饰的变量便是常量,只能被赋值一次;
java 中String类就是被定义为final类型
public final class String { }
本文详细解析了Java中static关键字的用途,包括静态变量、静态方法及静态代码块的特点与应用场景,并对比了静态变量与实例变量的区别。同时,还介绍了final关键字在类、方法和变量上的使用限制及含义。
699

被折叠的 条评论
为什么被折叠?



