1、this关键字和super关键字的区别及联系
this关键字用在本类中。
在类的内部,可以在任何方法中使用this引用当前对象。
this关键字是用来解决全局变量和局部变量之间的冲突。
this()可以调用同类中重载的构造方法,并且需要放在第一行。
super关键字用在子类中。
在子类中可以通过super调用父类中的方法和属性。
super()可以调用父类中的构造方法,并且需要放在第一行。
super()和this()不可以同时使用,并且都不能在静态方法内使用。
2、final关键字和static关键字区别
final修饰变量、方法、类
如果final修饰变量,变量就是常量,常量不可修改,定义时必须初始化
如果final修饰方法,方法就不能被子类重写
如果final修饰类,类就不能再被扩展,不能再有子类。Java类库中的String、Math就是final类。
final修饰引用类型的常量
如果常量是基本数据类型,不可以再修改。
如果常量是引用类型,不能再将其他对象赋给该引用,但可以使用该引用改变对象内部的属性。
static修饰后的变量为静态变量,本质上为全局变量,类的所有实例共享相同的静态变量。因此,通过一个对象修改静态变量的值后,通过该类的其他对象访问到的静态变量是修改后的值。当类被虚拟机加载,静态变量就初始化,既不需要创建类的对象就可以使用静态变量。
static修饰后的方法为静态方法,它们只能直接调用其他静态方法,只能直接访问静态数据,不能以任何方式引用this或super关键字。
static修饰后的代码块为静态代码块,只执行一次,而且是类加载时就执行,作用是静态初始化数据。
标签:面试题,Java,变量,静态,final,关键字,修饰,super,两道 From: https://blog.csdn.net/weixin_68489989/article/details/140331423