本文小结了JAVA常见的基础面试问题,希望对大家面试有帮助。
知识点拓展的链接均为自己这一个月内整理的文章是相关知识点详解。
Welcome reading and learning to progress together.
- 程序员简历模板请参考:简历制作—心得分享
- JAVA框架面试知识点参考:JAVA框架面试汇集
- 1.Java 的多态表现在哪里?
- 多态要有动态绑定,否则就不是多态,方法重载也不是多态(因为方法重载是编译期决定好的,没有后期也就是运行期的动态绑定)
- 多态当满足这三个条件
1.有继承 2. 有重写 3. 要有父类引用指向子类对象
- 2.抽象类与接口的区别
- (1)
一个类只能继承一个抽象类,一个类可以实现多个接口
- (2)抽象类中可以存在非抽象方法,接口中的方法都是抽象方法
- (3)抽象类可以有私有的成员变量和成员方法,接口中的方法全部默认的修饰为public abstract 类型的方法
- (4)实现抽象类的方法时,如果方法是抽象的,子类必须重写抽象方法,如果方法不是抽象的,子类可以选择继承;实现了接口就必须重写接口中的所有方法
- 3.解释方法重写与方法重载
- 方法重写:
子类继承父类时,存在与父类中某一方法相同的方法名,返回类型和参数列表,则子类方法将覆盖父类原有的方法。
方法重写特性:方法重写的返回值、方法名、参数列表必须完全一致。 - 方法重载:
在一个类中具有多个函数名相同,参数列表不同的方法
。参数列表不同包含参数个数和类型的不同。
-
4.==和equals()的区别
-
①关于==解读:
-
基本数据类型:比较的是值是否相同
-
引用数据类型:比较的是引用(地址)是否相同
-
②关于equals解读:
-
对于重写equals方法的引用数据类型:比较的是值是否相同
-
对于未重写equals方法的引用数据类型,源码继承object的equals方法,等同于==,即比较引用(地址)是否相同
-
补充源码:
- 5.&与&&的区别
- ①
&与&&都可以用做逻辑与运算符
,表示逻辑与(and),当运算符两边的表达式结果都为true时,整个运算的结果才为true,否则为false - ②
&&具有短路功能
,即如果第一个表达式为false,则不再计算第二个表达式 - ③
&还可以用作位运算符
,当&操作符两边的表达式不是boolean类型时,&表示按位与操作
- 6.final, finally, finalize的区别?
- ①
final修饰的类不可被继承,被final修饰的方法不可被重写,被final修饰的变量。