2024第一份面经(有问题大佬指正)

某小厂面经-50min



第一次面试还是有点紧张,中午接到面试,下午开始面



面试官:先来段自我介绍吧

我:....(努力的往项目去引)

面试官:你的项目都是自己写的吗

我:是的是的都是自己写的

面试官:你说说你的api项目是具体干嘛的

我:提供API接口供开发者使用的平台,开始介绍自己的项目的结果,每个模块具体是做什么的

面试官: 你说你用了api网关你这个网关是做什么的

我:校验用户信息,应用 API 签名认证算法校验用户请求的合法性

进行转发,防止用户刷我的接口

面试官:既然你说你这个是防止用户刷接口,那你是怎么做到限流的,是封ip,还是?

我:(当时我是蒙蔽的。我在想我没有做限流啊)我没有做限流,我在后台维护了用户和接口调用次数的表,用户如果没有调用次数就禁止调用了

面试官:你说说你jwt怎么实现的吧

我:首先在maven引入依赖,写一个jwt的工具类,我的token没有放在header,直接放在cookie里的,每次判断登录的时候就去遍历cookie拿到token交给工具类去解析判断是否过期还是无效。(当时还以为会被问道安全性问题,例如:攻击者可以利用某些漏洞(如跨站请求伪造CSRF)对cookie进行攻击,从而获取token。)

面试官:你的token设置的多长时间过期

我:7天,结果面试官来一句,你一个登录要设置这么长时间吗(我当时还在想,我想设置多久不是我来决定的么),我就说这个可以改的嘛

面试官:你说你设置了ak,sk,那么你是怎么变更的呢?

我:我写了一个接口,用户点击更换就可以重新生成ak,sk,30天只能更换一次

面试官:你不怕有安全问题吗

我:我一脸懵逼,我说请求的时候没有传ak,和sk啊,就传了用户id,他说别人一抓包就知道了,我问他您有什么好的解决办法吗,他说这个留给你自己思考

后面就开始面试常规八股

有了解过ioc吗

说实话这里是真的没有听明白从他嘴里说的ioc(说的单词太蹩脚),当时我一直默念ioc,ioc,就是想不起来是啥,就只能说不是很了解

aop知道吗

我:知道知道,随后就拿起鱼皮的boot模板里面的aop的代码给他讲起来了,然后说就是为了记录日志,做的环绕增强

mysql的索引是干嘛的

我:可以用来快速查询数据表中有某一特定值的记录,提高查询速度

mysql的left和join的区别

我:Join结果集中只会包含那些符合连接条件的行,Left Join的结果集则会保留左表的全部行以及右表匹配的行,如果连接条件中有些数据在右表中不存在,则对于这些数据,结果集中显示NULL值。

mysql天窗了解过吗

我:???(这里没有听明白说的啥)

mysql的索引的用的什么数据结构

我:b+树

分页的原理,去重的关键字

我:通过limit关键字,第二个有点忘了,一直在哪dis半天,后面面试官直接说答案了

mq都用在那些地方

我:当时自己写过,就说了订单超时取消订单,异步下单

知道幂等吗?

我:在程序开发中,则是指同一个业务,执行一次或多次对业务状态的影响是一致的(当时看了黑马的mq高级部分,结合黑马商城正好就答出来了顺便还答了怎么确保幂等性)

了解分布式锁吗

我:我说我看过源码,通过lua脚本实现的,但是还准备回答的,他说能答到lua脚本就行了,顺带扯出了watchdog这个机制,又聊了两句

你说说常用的linux指令

我:说了两个,然后说我最近docker指令用的多然后又去问docker了

docker的作用?

我:Docker解决依赖兼容问题,容器之间不会相互影响,他说是这样的吗?我当时说:难道不是吗?

docker是怎么挂载目录的

我:容器的文件与主机文件进行映射

docker是怎么运行镜像的

我:docker run ....

dockerfile的第一句是什么?

我:????,我就写过一次不太记得了

dockerfile的每一行命令是否会构建一个新的镜像

我:不知道(百度了是会的)

最后一个问题,linux的vim指令是怎么编辑文件

我:i,:wq 退出保存

那我想不保存退出怎么办?

我::q

然后面试官说是:q!,我心想:q不也行么


反问环节

公司是干嘛的?

面试官:低代码开发

今后学习的建议?

面试官:多做项目积累经验,积累工作经验

面试表现?

面试官:挺不错,比前面的好


0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
新之助
下载 APP