程序员进阶面试题总结
树图思维导图提供 进阶面试题总结 在线思维导图免费制作,点击“编辑”按钮,可对 进阶面试题总结 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:fac4f2eaa7b9b4cfd44ba29e73117dbe
进阶面试题总结思维导图模板大纲
解释一下继承的概念
为什么
为了解决封装的缺点
是什么
类与类之间具备继承(扩展)关系
怎么做
使用extends关键字
特点,优缺点....
Java中所有类的父类是什么
思考重写(override)与重载(overload)的区别
重写:
重载:
解释super与this关键字的区别
相同点
super与this都可以调用构造器,方法,属性
不同点
super调用父类的构造器,只能在子类构造器里面,要放在子类构造的第一行
this调用本类的构造器,只能在本类构造器里面,要放在本类构造的第一行
final有什么作用?
String是不可变的,为什么?
解释Java函数式编程lambda表达式的闭包,以及如何解决闭包的问题
//闭包 : lambda表达式方法体内在使用外界变量时,会自动加上final
//如何解决? 那基本数据变量变成引用数据变量
什么是构造器引用以及方法引用,使用条件是什么
面试题
为什么不建议在循环中直接用加号拼接字符串?
思考==和equals的区别
请说出冒泡排序,选择排序以及二分查找的思路
冒泡
选择
二分
如何自定义异常?
步骤
Step1:定义异常类,类名必须见名知意
Step2:写继承关系(可以继承Exception,但大多都继承RuntimeException)
Step3:生成构造器,一般空参有参都生成
Step4:按照手动处理异常的方法,声明、抛出或者捕获你所自定义的异常即可
说出异常继承体系结构以及什么是编译?运行异常?
手动处理异常的三种方式?
catch捕获多个异常时应该注意什么?
throw和throws的区别是什么?
说一下java集合继承结构
说一下List中常用的类及其特点
说一下如何使用LinkedList模拟栈和队列
数据结构
说出常见的数据结构及其优缺点
数组
链表
栈
队列
树
为什么要重写hashCode和equals
/* hashCode -> 哈希值 -> 经过哈希运算得到的一个整数值 任何东西经过哈希运算之后都能得到一个固定的整数值 如果两个对象的哈希值不一样,那就说明内容一定不相等 哈希碰撞 : 哈希值一样,但是内容不一定一样 如果产生哈希碰撞 -> 再调用equals比较内容 */
说出常见的设计模式
单例
模板
策略模式
装饰器模式
进程与线程的概念和区别
并发与并行
java创建线程有几种方式,分别说一下哪几种
你刚才讲的这几种创建方式有什么不同?
当你想获取线程执行后的结果的时候,只能使用Callable
当你仅仅只想执行的时候不需要获取结果时,应该优先使用Runnable,因为java是单继承的
调用start方法启动线程
与run方法的区别?
多次调用start方法?
创建多个线程观察运行顺序
线程操作共享数据会有什么问题?产生该问题的原因是什么?如何解决的?
线程池执行流程图
获取Class对象的三种方式
树图思维导图提供 1113爆卡会总结会会议纪要 在线思维导图免费制作,点击“编辑”按钮,可对 1113爆卡会总结会会议纪要 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:aaf6c152a765d5821e8e1787f2b3226e
树图思维导图提供 总结 在线思维导图免费制作,点击“编辑”按钮,可对 总结 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:1b4116f2584ad5177f1537382a5b731f