面试公司:山东中创软件工程股份有限公司
面试岗位:java开发
基本信息:坐标北京,都是进行的线上面试;面试的大部分是外包公司,问的比较多的是token认证,也会大概问一下消息队列在开发中的使用场景等,一周内收到offer,整理了一下,供大家参考吧!
面试问题:
1.线上面试的时候偶尔会信号不好,或者面试官声音太小.
2.常用的Linux命令:比如移动文件 , 查看文件中的某个关键字等;多记几个常用的,问项目部署我都说的有运维负责部署
3.Gitee代码管理,怎么合并分支,创建和切换分支,怎么代码解决冲突,gitee是怎么判定代码冲突的(根据什么来判定了,原理是啥)
4.集合底层原理(List,Map),线程安全的集合等
5.数据库优化,怎么防止依赖注入.
6.如何实现用户的单点登录(JWT生成token :项目组长给提供好了工具类),怎么保证不会让别人使用后端返回给前端的token(将第一次登陆时的ip也放入token里),怎么防止恶意访问(多次请求,在网关里记录每分钟内同一个ip请求的次数,超过一定次数禁止继续请求)
7.在工作中遇到问题怎么解决(一把都是通过debug模式,打断点进行分析,查看数据是在哪一步出现异常的);
8.你认为在工作过程中遇到的那个问题最有意义,怎么解决的?
9.线程的创建方式,锁,线程池的创建方式与好处
10.Spring的IOC和AOP实现原理
11.sql语句的优化及左连接与右连接,根据面试官给出的具体情况进行查询数据,聚合函数的使用
12.接口与抽象方法的区别
13.事务的隔离级别,事务的四大特性
14.SpringBoot的核心注解及作用
15.项目里分布式事务的实现
面试总结:
面试的时候对于自己不确定或者不是很了解的尽量不说,避免给自己挖坑,面试前最好把一些常用到的基础知识翻一翻,最好有个大概印象,自己能用自己的话说清楚,面试前一定要把自己简历上写的项目能够自己描述清楚,对项目里用到的技术要了解清楚,最好是写自己真正敲过的功能。



