java基础面试
2020-01-08 本文已影响0人
刘仔大人
1、请解释。string类两种对象实例化的区别
*直接赋值:只会产生一个实例化对象,并且可以自动保存到对象池之中。 以实现该字符串实例的重用。
*构造方法: 会产生两个实例化对象,并且不会自动入池,无法实现对象重用。 但是可以利用intern()方法手工入池处理。
2、==与equals()的区别
*equals是类所提供的一个比较方法,可以直接进行字符串内容的比较。
*==进行的是数值比较,如果用于对象比较的是两个内存的地址。
3、
方法重载与方法覆写的区别
方法重载(Overloading):
1.方法名称相同,参数的类型或个数不同
2.方法重载对方法的权限没有要求
3.方法重载发生在一个类中
方法覆写:
1.方法名称、参数类型、返回值类型全部相同
2.被覆写的方法不能拥有比父类中的方法更高的权限,也不能拥有private权限
3.方法覆写发生在两个继承类中
4、super与this区别
如果子类中出现非私有的同名变量,要引用时:
(1) 访问父类中的同名变量,用super
(2) 访问子类本类中的变量,用this
如果子类重写方法时,要引用父类中的已经定义好的功能时,用super.方法
如果子类中的构造函数需要指定父类中其他构造函数进行初始化,使用super(参数)的形式
如果子类中的构造函数中,需要引用父类中已经定义好的方法,使用super(参数)
主要区别
super的使用基本与this一致,主要区别在于
super代表父类对象的引用
this代表本类对象的引用
5、final关键字的主要作用 ————————https://www.cnblogs.com/xiaoxi/p/6392154.html
*1、定义不能被继承的类
*2、定义不能被覆写的方法和常量