回答面试题的基本要求
表达方面
- 声音不要太小,语速不要太快 :声音太小,让面试官觉得不够自信;语速太快,显得不够成熟。
- 不用追求内容完美无缺:太完美,是在背题目,只要能答出80%即可。
- 谨记不会的或不清楚的不要乱说:因为很容易暴露自己的技术水平不足或者缺乏专业知识。
- 技术术语和专业性:要确保在讲话中使用准确的技术术语和专业性语言,避免用词不当或者不准确的情况。
- 对项目经验的描述:在描述项目经验和项目技术细节时,要确保清晰易懂,语速适中,同时注重突出个人贡献和技术难点的解决。
- 解决问题的能力:在回答问题时要展现自己的解决问题的能力,清晰陈述问题,描述解决策略和实施方法。
- 良好的沟通能力:Java开发工程师需要与团队成员和其他部门进行良好的沟通,所以面试中展现出良好的沟通能力非常重要,包括倾听、表达和解释能力。
- 发音准确,逻辑清晰:在回答问题或表达观点时,要确保逻辑清晰,尽量避免冗长或混乱的表达方式。
- 举一反三:通过适当举例说明,展现自己的分析和总结能力,能够将个人的经验和能力与所应聘的职位要求相结合。
- 切记说不会或不知道:这是态度问题,可以说相关或这个我回去再研究一下等。
通过注意以上问题,能够提高在面试中的表达效果,增加自己面试成功的概率。
面试题的基本分类
- 对比类:两个技术做对比
- 知识类:知识是什么,有什么特点、好处,包含什么等
- 列举类:列举一些方法或列举一些类或列举一些场景
- 原因类:为什么使用这个技术,为什么是这样一个情况,请解释原因。
- 原理类:解释什么技术底层实现的原理
对比类
两个技术做对比 1. 先回答共同点 2. 再回答不同之处
举例:接口和抽象类的区别是什么?
共同点:两种都不能实例化对象(共同点)
区别:
抽象类除了可以包含抽象方法,还有可以有实现方法、构造方法和普通成员数据,即使一个完整的类,用可以声明为抽象类。
接口包含的方法默认是抽象方法,1.8以后可以用default修饰实现方法,它包含的数据是默认是 public static final的。
知识类
是什么?有什么特点?有什么好处?包含什么?等 1. 先用最精炼的话总结出来 2. 再扩展这个知识点相关的作用或应用场景
举例:Java反射有了解吗?
总括:Java反射就是指程序在运行期间动态获取类信息以及动态调用对象方法的功能的机制就是反射 作用或场景: 很多的框架底层都会用到反射机制类实现,比如Spring、MyBatis 等框架。因为框架需要动态的帮助我们实例化对象,甚至动态调用对象的方法来实现功能。
列举类
列举一些场景类或列举一个类的方法 1. 先说这个场景或类的定义或特点 2. 再列举3-5个以上的例子 3. 英文不好,也直接说中文的含义
举例: 请写出你最常见的 几个 RuntimeException?
RuntimeException :是运行时异常,运行时由Java虚拟机生成的例外,编译期不检查 比如场景的有: NullPointerException、NumberFormatException、 IndexOutOfBoundsException、ClassCastException、ClassNotFoundException。
原因类
为什么使用这个技术,为什么是这样一个情况,请解释原因 1. 尽量用一句话概况这个技术的核心或定义 2. 先说用这个技术的核心原因是什么 3. 再说没有使用这个技术会怎样 4. 使用这个技术的注意事项【背面试题时,需要准备,以备面试题进一步提问】
举例:为什么使用数据库连接池?
概述:
- 连接池负责分配、管理和释放数据库连接。
- 核心原因: 连接池主要是重复使用一个现有的数据库连接,而不是重新建立一个。
- 不使用会怎样:如果不使用连接池,需要每次连接数据库都创建新的连接,频繁地进行数据库连接操作将占用很多的系统资源,严重的甚至会造成服务器的崩溃。
- 对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将导致重启数据库。
原理类
解释什么技术底层实现的原理 1. 先给出原理的最直接总结 2. 再展开讲解原理的细节(尤其是为什么使用这个技术及作用) 3. 原理的补充及总结
举例:HashMap底层实现原理?
- 直接总结:数组+链表+红黑树
- 展开讲解: 1. 数组的作用 2.链表的作用3.红黑树的作用
- 补充:1.8之前与之后的区别