常见关键字总结
static关键字
存在的意义
创建独立于具体对象的变量或者方法,以至于即使没有创建对象,也能够使用属性和使用方法,对于一些固定的数据不用采取对象的方式进行重复性存储,所以可以通过static的关键字的共享来实现,将数据共享化。
static 关键字修饰成员变量(类变量)
- 调用:通过类名进行调用,不建议通过对象进行调用。
- 存储位置:存储到内存中的方法区中。
- 生命周期:从类加载的过程中开始,到程序结束确定。
static 关键字修饰成员方法(类方法)
- 调用:通过类名进行调用,不建议通过类对象进行调用,可以使用类内部的其他的静态成员,不可以使用类内的其他的非静态成员。
- 存储位置:static修饰的成员方法存储的位置是内存中的方法区中。
- 生命周期:从类加载的过程中开始,到程序运行结束。
- 使用:通常用于工具类封装,节省实例化对象所需的空间和时间。
static 关键字修饰的静态代码块
- 加载:静态代码块,和其他的静态成员或者方法的执行顺序严格按照从上到下的顺序执行,并且静态代码块中的执行有且只有一次
- 用途:因为静态代码块在类加载的时候执行一次,所以在很多的时候。可以用来优化程序功能,很多的时候环境局将一些只需要进行一次的初始化操作都放在static代码块中进行执行操作。
final关键字
修饰成员变量
- 修饰的成员变量,【必须进行初始化操作】,并且在进行赋值操作之后不能进行修改,一般用于类内带有名字的常量。
- 修饰的局部变量也不能够进行修改,必须进行初始化的操作。
- 如果修饰引用,则表示引用不能够改变,但是引用的指向内容可以发生改变。
- final修饰的常量是在编译阶段存放在常量池中。
修饰成员方法
- final 修饰的成员方法不能够被子类继承重写的操作。
- 被final修饰的方法,JVM会尝试将其内联用来提高运行的效率。
- 用途:经常被用来进行一些安全性方法的定义。
修饰类
- 修饰的类没有子类,不能够被继承
- abstract修饰的类不能够使用final进行修饰操作。
abstract关键字
- 可以修饰类和方法
- 不能够修饰属性和构造方法
- 修饰的类是抽象类,需要被继承
- 修饰的方法是抽象方法,需要子类被重写
this关键字
this 和 super 关键字使用的都是就近的原则
- this.属性名:当方法中的局部变量和成员变量重名,需要使用这种方法,代表的是成员变量。
- this.方法名称:其中的this能够代表的是当前的对象。this关键字的最大的作用是让一个类中的方法,访问类中的另外一个的方法或者实例变量。
- this() : 表示的是访问构造方法,括号里面如果有参数,表示的是访问指定的有参的构造方法。
super关键字
- super 可以直接来引用直接父类的实例变量
- super 可以用来调用直接父类的方法
- super() 可以用来调用直接父类构造函数。