1、在大厂中用的是java8吗?还是更高版本的?
- 基本都是8,一些老项目是7
2、远程面试的时候让写算法题,是线上写还是用纸写还是用面试公司开发的工具写?会有方法输入提示吗?
- 一般都是伪代码,重点看的是思路和逻辑。如果考察细节的问题不会太大太难,用不着三方api
- 按我的想法,有的简单的算法题,调用几个API就搞定的,不要调用第三方api,要自己实现
- 复杂的算法题,考的就是思路,可以用伪代码把思路表达清楚即可
3、面试在问项目的时候,天天crud的要咋回答比较好?我需要做些什么准备?
- 没有好的项目精力,就要好好准备知识的深度与广度
- 有精力和能力去利用这些架构重构自己的项目
- 刷leedcode题目,提示自己的思路和代码能力
4、数据规范问题
- 前端和后台、数据库要指定同一的数据规范。
- 数据规范要在源头处理,越往后越麻烦,经过网络传输、序列化,以及各种框架的接受转码,不知道转多少回了,你都不好排查哪里转出了问题
5、 判断一个数为奇数的写法,使用位运算与普通四则运算
- 在能使用二进制位运算的情况下,最好使用使用二进制位运算,因为计算机底层就是0和1,使用位运算效率极高
- 例如HashCode、HashMap里面的路由寻址、各种hash寻址计算都是采用的是二进制位运算。
- 刷leetcode,培养一下对算法效率的敏感度和思维
6、使用反射为什么会影响代码运行效率?
- Method#invoke 方法会对参数做封装和解封操作
- 需要检查方法可见性
- 需要校验参数
- 反射方法难以内联
- JIT 无法优化
- 反射不要在toC的高qps、高并发场景下用
7、什么时候使用类实例化对象存储数据,什么时候使用Map存储数据?
- 类是承载稳定数据结构的,有稳定的字段
- 不确定的结构用map,key就是字段名,value是字段值。最灵活的结构,爱怎么变怎么变
8、问题描述:面试的时候,问你系统的架构是怎么样,应该从哪些角度来回答,因为我自己也只是负责一个微服务
首先你要有全局观,即使只负责一个,也要知道全貌,能简单说了整体架构和流程。其次重点讲你自己的负责的这个服务的架构。从业务到技术,从头到尾。