文章目录
一、初识自我介绍(5~8分钟)
80%的面试基本第一步上来就是介绍一下自己,这个是第一个也可能是埋下伏笔的环节。
面试官你好,我叫王瑞文,来自中北大学软件学院。然后。。。。说了说学习的技术栈,还有做过的项目
面试官:这些 技术栈你学的最好的是哪个
我:JAVA 看过一些集合源码对并发颇有自己的见解
本以为在我介绍完成之后面试官会开始根据简历提问,内心想着我都这么说了你快问我java。结果所想即空想!
二、谈做过项目(20分钟)
- 个人博客
面试官:说一下你的个人博客吧
我:采用的springboot2.0X+thymeleaf 等。。技术栈+自己负责什么+实现什么功能
因为这个个人博客没什么技术含量所以面试官也就止步于此
- 电商项目具体问题比较多一一罗列如下:
- 说一下单点登陆什么意思?
- swagger在其中怎么用的?
- zipkin 怎么实现的?
- 项目的难点,亮点?
这里主要谈了并发下防止库存超卖和表单重复提交,还有一些分布式事务问题
- 做过什么优化,测试。
三、MYSQL、Redis、计算机网络(15分钟)
MySQL
你知道MYSQL的锁吗?
给出一个表单问具体是什么锁。
id | name |
---|---|
张三 | 李四 |
id是自增主键。
问题一:根据id去删除一行数据会走什么锁?
问题二:根据name删除一行数据会走什么锁?
问题三:给name加普通索引会走什么锁?
这个问题在上一篇博客给出了具体答案:不同引擎下CRUD分别加什么锁?
问了了解数据库缓存吗?
Redis
- 基本数据类型
- Redis的String和Java的String有什么区别吗?
- RedisString底层是如何实现的?
- Redis的常用命令
计算机网络
- 说一下常见的状态码
- 老生常谈的 三次握手,四次回收 以及为什么是三次?为什么是四次
- Http1.0 、1.1、2.0区别
- Https 连接过程
- 还有个问题不是很清楚,记得自己谈了滑动窗口和拥塞控制
四、 Linux、Git(十分钟)
Linux
这两块的话因为我自身(Linux用的不是很多仅仅会用层面) 所以Linux只问了知道哪些命令?
nohup java -jar XXX &
- &是什么意思?
- 在这个命令中怎么指定编码格式? -Dfile.encoding
- utf-8 GBK utf-16 有什么区别?为什么一般用utf-8
Git
- 常用命令(就从建仓库到推到远程仓库都说了)
- 如何解决冲突
五、算法(20分钟左右)
最后的环节是手撕算法
面试官给出的题目很简单就一句话:求字符串中最长回文子串。
最后博主小小吐槽一下,我可是面试得JAVA研发。惨惨的java硬生生一个没问。
欢迎评论区与我交流互动。