JAVA初级开发工程师面试常问题目(持续更新)
1.说说你对面向对象的理解
面向对象是一种“万物皆对象”的编程思想,在生活中任何事物都可以归为一类,而每一个个体都是一类事物的实例。
2.抽象类和抽象接口的区别
抽象类:
抽象类可以包含非抽象方法,属性;但是包含抽象方法的只能是抽象类
抽象类中的抽象方法必须由子类实现才能使用,如果子类没有实现全部的抽象方法,则该子类依旧是抽象类
子类只能继承一个抽象类(extends)
接口:
在JDK8之前,接口的方法只能由public修饰,必须是抽象的,JDK8之后,增加了default和static
接口中只有常量,因为接口中的变量只能用public static final修饰
接口中的抽象方法必须由子类实现才能使用,如果子类没有实现全部的抽象方法,则该子类为抽象类
子类可以实现多个接口(implement)
3.说说第三范式
第一范式:表中每个分量必须是不可分割的数据项
第二范式:在第一范式的基础上,表中的每个非主属性必须完全函数依赖于主属性
第三范式:在第二范式的基础上,表中的每个非主属性之间不能有传递依赖
4.Java中的方法覆盖(Overriding)和方法重载(Overload)是什么意思?
方法重写:是指子类继承父类的方法,并重新编写方法里面的内容。
方法重载:是指在一个类中方法的名称相同但是参数列表不同的情况。
方法重写原则:
- 方法名和参数列表必须相同
- 两小一大原则:方法返回值类型要小于等于父类方法,方法抛出异常类型要小于等于父类方法,方法访问权限要大于等于父类方法
- 被final,static,private修饰的方法不能被重写
方法重载原则:
- 方法名必须相同
- 参数列表不同(个数不同,类型不同,数据类型的顺序不同)
(int a) ——> (int a , int b)
(int a) ——> (double a)
(int a , double b) ——> (double a , int b) - 返回类型可以相同也可以不同,但仅仅返回类型不同是不能构成方法重载的