面向对象 面试题12道

tech2026-02-04  12

1. 接口与抽象类的区别

(1)抽象类:使用sbstract修饰 接口:使用interface

(2)抽象类:可以有抽象方法和普通方法,抽象方法的类一定是抽象类 接口:jdk1.7之前只能有抽象方法,在jdk1.8之后 可以有default、static修饰的方法

(3)抽象类:可以有普通的属性(变量 常量等等) 接口:只能用常量

(4)抽象类:通过普通类继承抽象类{}实现 接口:通过类implements接口{}实现

(5)抽象类:可以有构造方法 接口:没有构造方法

(6)抽象类:只能单继承 接口:可以多继承 也可以多实现

2. 构造方法可否能被重写

不能: 构造方法: (1)给类中的属性赋值 继承关系中子类除了继承父类的属性之外,还可以扩展自己的属性 (2)可以重载或者在子类中用 super()调用父类的构造方法

3. (= =)与equals()的区别

==: 基本数据类型:比较数值是否相等 引用数据类型 :比较2个对象的地址值是否相等

equals() 引用数据类型:比较2个引用数据类型的值是否相等

4. 什么是拆箱和装箱

装箱:基本数据类型转换成包装类:基本数据类型直接赋值给对应的包装类型 ​ Integer a=43;

​ int t=34;

​ Integer t1=t;

​ Integer in=new Integer(t)

拆箱:包装类转换成基本数据类型 Integer a=45;

​ int t=a.intvalue();

5. 方法重载(overload)需要满足什么条件,方法覆盖/方法重写(override)需要满足什么条件

重载: (1)在当前类 (2)方法名必须相同 (3)返回值类型没有任何关系 (4)方法的参数一定不相同

重写: (1)子类和父类的方法名,返回值类型 参数列表全部必须相同 (2)子类的方法修饰符权限不能比父类低

6. 谈谈final,finally,finalize的区别。

final: 属性不能改变,方法不能被重写,类不能被继承。 finally: 异常处理的语句结构的一部分,总会执行。 finalize Object一个类,垃圾回收期执行的时候调用方法,提供对其他资源的回收。

7. abstract的方法是否可同时是static,是否可同时是synchronized

都不可以: abstract抽象类,只有方法的声明没有实现,抽象类的一个子类 static:静态,一种属于类而不属于对象的方法或者属性 synchronized:同步,相对于线程的同步锁

8. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的语句会不会执行,什么时候被执行,在return前还是后

会执行,在return前执行

9. int和Integer有什么区别

int:基本数据 默认0 定义属性 Integer:包装类 null new创建对象

10. 静态变量和实例变量的区别

静态变量 使用 static 修饰,可以使用类名.属性名调用, 所有对象共享变量 , 加载类的时候读取到变量 实例变量:没有static修饰,可以使用 对象名.属性名 调用, 所有对象单独私有变量 ,类加载没有读取到变量

11. 什么叫对象持久化(object persistence),为什么要进行对象持久化

对象的内容保存到数据库或者文件中,可以很方便保存的对象在读取出来,供用户来使用,可以使用java提供的一个序列化的机制 什么时候进行序列化? (1)对象保存到文件或者数据库中 (2)套接字在网络上传送对象 (3)通过RMI传输的对象 对象序列化方法:实现Serializabale接口

12. 以下循环语句执行的结果是

static boolean foo(char c) { System.out.print©; return true; }

public static void main(String[] args) { int i = 0; for (foo(‘A’); foo(‘B’) && (i < 2); foo(‘C’)) { i++; foo(‘D’); } }

ABDCBDCB

最新回复(0)