java中Static关键字的深入理解

static 声明类的成员变量 以及方法的特点。

1.1:static声明的方法是静态方法,static声明的成员变量为静态成员变量。对于该类的所有对象来说,static的成员变量和static只有一份存储空间

1.2:即使没有创建该类的对象,也可以使用该类static的成员变量和static方法。

  static所修饰的成员变量和静态代码块 当虚拟机加载类的时候就会被创建,也就是 即使这个类不被初始化,没有创建这个对象,java虚拟机也能根据类名在运行时数据区的方法内找到他们。(红字部分 后面会有文章详细介绍。)

1.3: 静态方法中不能使用this关键字

  这个也很好理解。当一个对象创建好之后,java虚拟机就会给它分配一个引用自身的指针:this。也就是说 this是当前对象的引用。红字部分说了 是当前对象的引用,而执行static方法的时候 对象可能还没被初始化,所static方法中不能引用this关键字。同理 不止是this关键字,static方法中 不可访问任何非static的成员变量。同理 非static的成员变量 在类被初始化的时候才会被创建

1.4:作为程序入口的main方法是static方法

  把main()方法定义成static的静态方法,java虚拟机只要加载了main方法所属的类,就能执行main方法。而无需先创建这个类的实列

补充:不管是静态方法,还是普通方法 他的字节码都位于方法区内

2:Final关键字的特点

  2.1. final修饰的成员变量成为常量 永远不能被改变,并且常量必须被显示的初始化

  2.2. final修饰的方法不能被重写(也就是子类继承父类时,不能重写父类的final方法

总结:final 关键字 主要是系统的安全。结合 static 一起修饰成员变量 也就是静态常量,在代码中写一些静态常量,也可以提高程序的可读性  

猜你喜欢

转载自www.cnblogs.com/ssskkk/p/9070061.html