java中Static关键字的深入理解
Posted palapala
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 一起修饰成员变量 也就是静态常量,在代码中写一些静态常量,也可以提高程序的可读性
以上是关于java中Static关键字的深入理解的主要内容,如果未能解决你的问题,请参考以下文章