JavaGuide官方网站:javaguide.cn
你好,我是Guide。看腻了大厂面经?今天来看一位读者分享的小公司面经,总体难度还是挺简单的。不过,相比于前几年的小厂面试来说,还是要卷上不少的!
原贴地址:https://t.zsxq.com/YDm7R
下面是正文。
4.29 2:30 广州某小厂,记我的第一次技术面试(处女面)。
1、简单自我介绍
2、打开项目(上线项目真的必要!面试官一看简历,一言不合输网址打开后项目,一看胜千言!),随便问了点 API 和 BI。
API:
- 接口平台是什么
- 有多少个接口?(让他登录管理员界面)
- 谁在调用(使用人群?校内?商业)
BI:
- Chat GLM 怎么应用?(简历上写了 ChatGLM)
- 怎么生成应用(预设模板:输入模板 输出模板 + 文件预设问答训练)
- 模型自己部署吗?(可能不知道 ChatGLM 是什么 一直以为是我自己部署的 🤐)
3、开始拷打八股:
多线程:
- synchronized 和 lock(这里两个尴尬,第一是不清楚面试官说 synchronized 的发音,第二自己本身不太清楚这两个。主要答了获取释放不太一样,synchronized 是代码块去锁)
- wait 和 sleep(在 synchronized 里 CPU 占用不占用、唤醒时机)
Java 集合:
- ArrayList 和 LinkedList 区别。(内存结构、增删改查效率)
- HashMap 扩容机制。(阈值、🤡 然后讲偏了 后面说成 HashMap 链表升级红黑树的方法原理:链表红黑树解决效率)感觉这里没答好,而且还是写到简历上的点 😥,要补一下左旋?(只知道有这些规则 是什么规则没有背 😥 回答主要为了树是一个平衡二叉树)
- GC 算法(三种垃圾回收算法,标记清除、标记整理、复制算法。没细问 我这块也是了解 😥)
MyBatis:
- #{} 和 ${} (SQL 注入,直接引用还是做一些预处理到 sql。说一下 statement 和 preStatement)。经常用哪个?(那肯定是#{}防止 sql 注入)
- 说一下 MyBatis-Plus
- 动态 SQL(我感觉用 mappper.xml 配置,太久远了不太记得,
<if> <where> <and>
说了一些记得的)
MySQL:
终于来到我之前准备的八股领域了 😭
- 存储引擎(三个,顺便说了一下 MyISAM 和 InnoDB 底层文件索引数据,说一下一些区别)
- 锁方面怎么样?(MyISAM 只有表锁,InnoDB 有细粒度更小的锁。由锁想到 MyISAM 增删性能非常好,InnoDB 有事务等等性能没那么高)
- 主从同步有做过?(没有。本来还想说可以 xx 实现,就问做没做过。可能也由于前面说运维成本高啥的没用,就直接问“你做没做过嘛”🤡)
- 建表,多少表?(:三个表。面试官:三个表!?😂 我:🤡?????陪笑 这个点后面反问补充一下)
- 🤡 用户角色权限设计(面试官提示 RBAC,我这里不太了解这个知识点,面试之后恶补了一下)。
- MySQL 的 id 除了自增长还有其他方式?(只记得只用过雪花算法,其他一些刷过博客忘掉了)
- 🤡UUID 和雪花算法你用哪个?你觉得有什么区别?(说雪花算法能保证唯一 但我也没想到 UUID 有什么缺陷。暂时没想到 🤡 说了都行,都可以,没区别)
Redis:
- 缓存生产问题三兄弟 + 解决方法(解释顺带说了一下解决方法,这里面试官开始看电脑,听我说完了又说下一个问题 🤯🤯)
- 🤡 持久化(只记得两种策略了,忘了)
Nginx 和 Docker:
- Nginx 有用过吗?(部署项目的时候 代理转发)
- Docker 有用过吗(我先说了没用 Docker 部署,马上追问“你用没用过嘛”,:没有。后来应该先别说没用 Docker 部署项目,平时 Redis、RabbitMQ 都有用 Docker 部署的 🤡)
前端(小公司 偏全栈嘛):
- 前端熟吗?(自己项目 React,学习时候用过 Vue,很快上手)
4、反问:
- 技术栈?后端:Spring Boot + Spring Cloud,前端:Vue + TS + ElementUI
- 业务?面试官说是驻点。没太懂这里?他说可以理解为“盖房子”。
- 表现?面试官说还可以,基础还行。
- 留个微信?(因为自从约面后 HR 之跟我说时间没有正式约面,地点都是导航去的,到了之后直接去给简历然后《BOSS 直面》)说 BOSS 账号了有点问题,之后在 BOSS 通知 🤡?
5、反思:
总的面了 24 分钟(他说开会比较急啥的)我的“处女面”🙂
- 第一感:面试官(应该也是 BOSS)一直一直一直一直吸烟,没停过。面多久吸多久,感觉有三支以上。印象不太好,除此之外面试感受中等。
- 拷打项目比较少,没有很好表现。没有问到自己对项目思考(为什么选这个技术栈,为什么用这个技术,项目难点等等)。之后可以改进,回答时顺便引导(挖坑)面试官往项目自己熟悉的问题去问,然后开始吟唱。
- 没有问是 BOSS 还是技术主管。可以针对身份问一些问题。
- 巩固一下不会的题。
- 管理员账号改成 admin 好一些,还帮面试官手输管理员账号(因为是设置的是自己的英文名 🤐)
👉推荐:
👉欢迎准备 Java/后端面试的小伙伴加入我的知识星球。
点击下方卡片进入公众号
回复 「PDF」 即可领取原创PDF技术面试手册
回复 「学习路线」 即可获取4w+字最新版Java学习路线
回复 「开源」 即可获取优质Java开源项目合集
免费分享无套路,有帮助点个赞就好!