深入解析广州小型企业后端面试经历:从自我介绍到技术细节的全景展示
1. 自我介绍
面试的第一步是简单的自我介绍。
2. 项目展示
面试官要求我展示上线项目,准备好的项目展示至关重要!面试官通过查看我的简历,迅速打开了项目网址。随后,他问了一些关于API和BI的基本问题。
API:
- 接口平台是什么?
- 有多少个接口?(让我登录管理员界面)
- 谁在调用这些接口?(使用者群体?校内还是商业?)
BI:
- Chat GLM的应用?(简历中提到的ChatGLM)
- 如何生成应用?(提到预设模板:输入模板 输出模板 + 文件预设问答训练)
- 模型是否自己部署?(面试官可能不太了解ChatGLM,误以为是我自己部署的 🤐)
3. 技术问题
接下来进入了技术考察环节:
多线程:
- synchronized和lock的区别(在这里的确有点尴尬,既不太理解面试官的发音,也对这两个概念掌握不够。主要谈到了获取与释放的不同,说明synchronized是通过代码块进行锁定。)
- wait和sleep的区别(在synchronized中CPU占用情况、唤醒时机等)。
Java集合:
- ArrayList和LinkedList的区别。(内存结构、增删改查效率)
- HashMap的扩容机制。(阈值等,讲述时偏离了主题,最后提到HashMap链表升级红黑树的原理:链表转为红黑树的效率)
- 垃圾回收算法(提到了标记清除、标记整理、复制算法,面试官没有深入问我这块)。
MyBatis:
- #{}和${}的区别(讨论了SQL注入和预处理的概念,提及statement和preStatement的使用情况)。
- 谈谈MyBatis-Plus。
- 动态SQL(使用mapper.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的经验 🤡)。
前端(小公司偏全栈)
- 你对前端了解吗?(我表示自己做过React项目,并学习过Vue,能够快速上手)。
4. 反问环节:
- 技术栈?后端:Spring Boot + Spring Cloud,前端:Vue + TS + ElementUI
- 业务模式?面试官提到是驻点,具体理解不深,他说可以类比为“盖房子”。
- 表现?面试官表示还不错,基础知识过关。
- 留个微信?(因为面试安排不明确,直接去面试,最终面试官询问了联系方式 🤡)。
5. 反思与总结:
总的来说,面试持续了24分钟(面试官提到有会议安排),这是我第一次面试的经历🙂。
- 第一印象:面试官(可能也是老板)一直在吸烟,没停过。面试时的印象中等,但这个习惯让我印象不佳。
- 项目展示较少,未能表现出我的最佳状态。没有深入讨论自己的项目思考(如选择技术栈的原因、项目难点等)。未来可以改进,引导面试官询问自己熟悉的问题。
- 没有确认面试官的身份(是老板还是技术主管),这影响了我问问题的准确性。
- 巩固不熟悉的知识点。
- 管理员账号设置成admin会更合适,还帮面试官输入了管理员账号(由于我设置的是自己的英文名 🤐)。
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果