Java面试题目整理(不断补充中)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HLK_1135/article/details/79121255

参考链接:
阿里面试总结
剑指Offer


(一)Java基础

1、 面向对象三大特征:封装、继承、多态
2、 static关键字
3、 final关键字
4、接口和抽象类的不同
Java同时提供和支持抽象类和接口,它们的实现有一些共同的特点,也有如下不同:

  • 接口中所有的方法默认都是抽象的,而抽象类可以同时包含抽象和非抽象的方法。
  • 一个类可以实现多个接口,但它只能继承一个抽象类。
  • 一个类要实现某个接口,必须实现这个接口声明的所有方法。而一个类不需要实现抽象父类中声明的所有方法,不过,这时候这个类也必须声明为抽象类。
  • 抽象类可以实现接口,而且不需要实现接口中的方法。
  • 接口中声明的变量默认是final的,而抽象类可以包含非final的变量。
  • 接口中的成员默认是public的,而抽象类的成员可以是private,protected,或public的。
  • 接口是绝对抽象的,不可实例化,抽象类也不可以实例化,但可以在main方法中触发实例化(注:通过匿名类实现)。

5、throw与throws的区别
throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。
通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
6、java作用域public ,private ,protected 及不写时的区别
作用域  当前类 同一package 子孙类 其他package

public   √      √      √      √

protected √       √      √      ×

default   √       √     ×     ×

private   √       ×     ×     ×

7、this()与super()的区别
this()指向当前类引用的对象;super()指向当前类父类引用
8、面向对象编程中两种对象组合方式——is-a 和 has-a:
(1)is-a组合:一个类继承具有相似功能的另一个类,根据需要在所继承的类基础上进行扩展。
优点:具有共同属性和方法的类可以将共享信息抽象到父类中,增强代码复用性,同时也是多态的基础。
缺点:子类中扩展的部分对父类不可见,另外如果共性比较少的时候使用继承会增加冗余代码。
(2)has-a组合:has-a组合是在一个类中引用另一个类作为其成员变量。
优点:可扩展性和灵活性高。在对象组合关系中应优先考虑has-a组合关系。
缺点:具有共性的类之间看不到派生关系。

(二)Java集合

(三)JVM原理

(四)J2EE

(五)Java设计模式

(六)Spring

猜你喜欢

转载自blog.csdn.net/HLK_1135/article/details/79121255