学java需掌握的面试基础……?

来源:互联网 发布:sublime php 语法检查 编辑:程序博客网 时间:2024/06/03 14:20

学java需掌握的面试基础……?

21.final、finally、finalize的区别?

final:被final修饰的类不能被继承、被final修饰的方法不能被重写(覆盖)、被final修饰的变量栈上的值不可以被修改(堆可以)

finally:finally出现在异常处理中,无论是否发生异常,finally方法体的内容都会被执行。

finalize:垃圾回收(java中垃圾回收的机制为自动回收)

22.String、StringBuffer、StringBuilder在字符串拼接上有哪些区别?

拼接效率 线程安全 资源浪费

String 最慢 安全 浪费

StringBuffer 慢 安全 不浪费

StringBuilder 最慢 不安全 不浪费

23.String类可以被继承吗?

String类不可以被继承。String类被final关键字修饰,被final修饰的类不可以被继承。

24.如何比较两个对象是否相等?

重写equals方法

@override

Public Boolean equals(Object obj){

........

}

25.如何比较两个对象的大小

第一步:实现Comparable<>接口

第二步:重写comparaTo()方法

26.Java是一种什么样的语言,其特征是什么?

Java是面向对象的语言,面向对象的特征是:封装、继承、多态

封装:私有化成员变量,提供公开的get、set方法。不让外界随意访问,而是通过该类提供的方法让外界操作这些。

继承:子类利用(extends)关键字继承父类,就会获得父类非私有的成员变量和方法。一个接口也可以继承另一个接口。

多态:1.子类继承父类、实现类实现接口。2.重写父类或接口方法。

3.父类引用指向子类对象 目的:相同的操作达到不同结果

27.super()是什么意思?子类继承父类,当new子类对象时,程序执行的顺序是什么?

1.super()代表父类构造方法,通常隐藏在子类构造方法的第一横,也只能存在于第一横。

2.由于子类构造方法第一横存在super(),当new子类对象时,优先执行父类构造方法。

3.如果子类和父类中都存在静态和非静态代码块,程序执行的顺序如:

父类static代码块-->子类static代码块-->父类代码块-->父类构造方法-->子类代码块-->子类构造方法

28.普通类、抽象类、接口的对比,区别是什么?

普通类 抽象类 接口

成员变量 成员变量 常量

构造器(构造方法) 构造器(构造方法) 抽象方法

普通方法 普通方法

代码块 代码块

内部类 内部类

抽象方法

总结:

普通类 抽象类 接口

可以new对象 不可以new对象 不可以new对象

继承或实现上:

java是单继承、多实现:

一个类只可以继承一个类,却可以同时实现多个接口。

29.接口是否可以继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承普通类?

  1. 可以

  2. 可以

  3. 可以

30.适配器模式怎么实现?

如果一个接口中的方法我们只需要一部分,就先用一个类去实现这个接口,再用另一个类来继承这个实现类,并重写我们想要用到的方法就可以了。

待续........

0 0