前言
本文主要用于个人复盘学习,因此为保障公平,所以本文不指出公司名,题目编号只是为了自己区别而已。对待面经,望读者还是更多从其中学习总结,而不是去碰原题。
面试岗位信息
后端开发秋招,上海某大中厂,二次元。Boss投递,大约三天后约面。
一面(12.26)
总体1h,大约15分钟项目,15分钟语言基础,15分钟八股,15分钟笔试。面试官态度很好,会一直引导、给出提示。算是我目前冬招过程中,收益比较大的一场面试了。
这个面试的有点紧张了,自我介绍疯狂的"然后"...还是需要巩固一下这个稿。
先聊了项目1,该项目内容是一个kafka做的死信队列服务。
如何判断消息是否重发?------根据发送时候设置的参数。
自己消息发送失败时候如何做?------发回来这个主题再。(后续考虑一下这里)
服务的吞吐,大量信息时候如何处理------目前没考虑,因为死信收到大量数据,那其他地方早就挂的不能再挂了。
如何做?------, 增加消费者,利用kafka的分区。(这个后续再考虑完善一下,包括多个东西存数据库这种如何做)
你们这个项目使用到kratos,使用了他的哪些功能?------我只知道个依赖注入...wire
什么是依赖注入?
kafka消息消费可能会失败,失败涉及到重试,使用kafka重试是否会出现重复消费,丢消息情况?如何解决。
kratos的其他一些模块有了解吗?选一个讲一下。
接下来开始聊的是语言基础
先问了Python...我不理解为什么我go的他问我那么多Python呜呜呜。
Python问题
is和==的区别。
有哪些常见的数据结构?
list和集合区别。
Python常见的内置方法?比如map。
golang问题
开协程,其中出现了空指针导致panic,会怎么样?
对一个数组循环,for range,使用kv时候有什么要注意的吗?大概是这个东西的知识点k、v是对元素的引用,始终是一个变量。
函数传递值时候,不同数据结构(数组、切片、map、struct)入参时候,有什么区别?哪些是地址哪些不是。
(这里我struct不清楚,他帮我举例了一个参数struct在函数内修改时,是否会影响?答案是会根据struct内的内容来判断,看他是否是地址还是什么)
深浅拷贝参考这里修改拷贝的值,是否影响另一个?
浅拷贝什么时候影响,什么时候不影响?(浅拷贝只是拷贝了第一级,所以根据他内容判断,是值类型还是引用类型)(此部分没找见直接文章,待我回头研究一下源码。。)
八股
http的全称是什么?------超文本传输协议。我没记得...
是哪一层的?------应用层。应用层还有什么?
Http协议常用的状态码。
http和https的区别。
tls是怎么保障安全的。
Post和Get的区别。
发起请求时候,请求组成包里面第一行是请求方法和路由地址,第二部分是header,第三部分是body。------列举几个常见的header?
进程之间通信方式。
线程之间通信方式。
进程和线程的区别。
索引的优缺点。(这里缺点的时候回答是会变慢,面试官建议让我说再深入点。我补充了B+tree这些)
编程
for+hash表
之后顺带聊了一下hash表的底层结构
总结
1、发现自己基础还是很不扎实,很多面试高频都还没背完。
2、算法题还是手生。。简单题也能卡。
3、紧张了。。
4、有时候要尽可能深入的聊吧。
这个面试还是算我近期几场面试中,直接收益最高的一场了...给我带来的很多努力的方向。但自我感觉不好,有点泼天富贵接不住的感觉了,哎。