#学习打卡day2 ---补上昨日说好的最近一周的面经复盘
最近一周多的面经记录,都为500人以内小厂,bosss约面,本人25届,bg双非硕,半非科班,有需要的小伙伴可以看下难度,防定位公司名用全拼和简写
广州biteying web3+go开发春招处女面 、3.13、20+min
(已挂----web3不懂不匹配)
Linux查看命令:
查看进程有什么、查看文件有什么
Golang:
垃圾回收介绍一下,介绍一下版本变化
介绍协程,有自己手搓过吗?----异步概念介绍一下
map底层原理介绍(扩容原理)
MySQL:
SQL优化怎么做?
B+树介绍一下
Redis:
redis持久化机制介绍:
缓存雪崩产生及如何解决
web3的了解(说了一些基本概念,其实就是啥也不会)
其他:
到岗时间,加班强度介绍,同时发生分歧,薪资范围,未来规划
广州qzj、 golang开发工程师一面 、3.14、40+min
(3个技术面试官一个hr,已挂---排查那部分答得没到点上可能留下了不好的印象)
Goalng:
1.操作slice时,底层怎么变化?追问:为什么变化是根据2倍2倍的去扩增的?
2.defer的原理以及返回实际时机,什么时候会内存泄漏
3.介绍一下channel以及有缓冲和无缓冲的channel
4.如何实现一个goroutine池限制并发数量,说说思路? 5.接1:一个程序除了在栈区还有什么区域?
MySQL:
采用MySQL和redis进行二级存储,如何保证两者的数据一致性
延迟双删是什么?
**项目:**20分钟
计网:
服务器排查发现有大量的timewait是为什么?该怎么排查和分析?怎么避免这种问题?
tcp的粘包怎么产生和解决
操作系统:
a程序打开b文件,如果不能关闭,可能的原因是什么?
其他技术问题:
除了基础的算法,还了解过什么工程中的算法?(开放题,说了个卡特兰数)
除了工厂设计模式还在项目中用过什么设计模式(多说几个)
看过什么开源项目?
如何学习技术?硕士研究方向?
其他:偶尔出差到现场、还有二面boss的宏观面
美团AI面回忆:
网络延迟都包含哪些时间组成成分?
Linux系统如何查看磁盘使用情况?
数据库分片的概念,有什么优势和挑战?
go的内存逃逸是什么?其常见的触发条件?对程序的影响是什么?
垃圾回收机制是怎样的?
场景题:微信红包功能如何保证拆分金额原子性和剩余红包金额的准确性
在高并发情况下,如何有效管理锁的粒度以提高系统的性能,同时保证数据的一致性和准确性
北京ad软件、Golang实习+转正一面3.17、30+min
(已offer,需提前实习、拿到毕业证可转正、13k+,具体不知道、偶尔加班)
挺有收获,
Golang:
defer的顺序、如何捕获异常(配合recover)
内存逃逸以及内存逃逸的影响?常见因其内存逃逸的原因?
数据结构与算法:
链表和数组的区别
快排的过程口述
计网:
tcp和udp的区别:
cookie和session的区别
操作系统:
物理内存和虚拟内存的区别
北京ns软件、Golang开发一面3.17 、30+min
(已offer,需提前实习、12k+、转正可再谈薪资、年终奖根据盈利,早九晚六双休)
**项目:**拷打了3-20分钟,列一些引出的八股问题
网关的具体问题,功能,(网关统一启动多个服务)
QPS的处理是怎么样的,什么时候计入数据库什么时候计入缓存
数据库表是如何设计的、存储消息过满如何解决(设置过期时间,针对热点数据进行缓存)
性能从1000提升到3000QPS,那么还有其他的优化方式吗
Golang:
如何用标准库实现一个channel(思路:消费者生产者的方式思考,读写+锁分别考虑情况) 面试官引导考虑用信号量的方式去思考
介绍GMP
计网:
tcp和udp的使用场景
linux查看进程的命令、如何进行性能分析/查看内存泄漏等问题排查
微服务:
微服务的注册中心是什么?
容器技术:
docker的好处是什么(相对虚拟机)
了解k8s和服务网格吗(简单了解一下)
反问:对个人建议、团队规模、后续面试流程
面试官:可以多看一些开源项目来学习技术,不要局限于常见的几种技术
深圳sm网络(游戏)、golang开发一面3.17、45min
等后续、反馈还行,问到的基本答上了,但是感觉我没给面试官出什么亮点,并且有要求快速到岗,说要横向对比一下
Golang:
go的特点有什么?
Go如何实现拼接字符串,哪种更高效?strings.builder为什么效率高
go的int和int32是一个概念吗
go如何实现面向对象的(从三大特点来说,interface是一个)
make和new的区别
slice和array的区别
MySQL:
一条sql的执行过程是怎样的
limtit(1000000,10)有什么问题?如何优化?
索引的优势和缺点
索引失效如何优化?
反问:
业务和技术栈是什么?后续流程?团队规模?
北京tdty、 golang开发 3.18 、30min
(一面过,等后续,面试官很温和+引导,体验不错)
数据库:
了解哪些数据库?
关系型数据库和非关系型数据库的区别是什么?
非关系型数据库如何进行查找数据?(redis举例,get命令用key查value)
哈希冲突和哈希不冲突的时间复杂度都是多少(冲突最坏O(n),要看具体冲突到哪种情况?不冲突:根据key直接找到value是O(1)
操作系统:
进程和线程的最主要区别?(进程间不共享资源,线程共享一个进程的资源,所以进程内线程通信非常快,而进程间通信就比较慢)
内核态和用户态的区别?(内核态有跟高级的CPU指令,所以可以访问操作系统的所有硬件资源;而用户态的权限比较低,访问资源相对受限)
Golang:
go中协程和线程的区别是什么?
groutine共享变量时要注意什么,该怎么解决?答:要注意同一时间只能用一个goroutine访问变量,防止数据竞争。可以使用互斥锁或者读写锁来保护变量,或者使用原子操作进行读写操作。
git:merge和rebase的区别(答得不好,光用不会说)
**容器:**docker:容器和虚拟机的区别
都是虚拟化技术,容器与其他容器共享宿主机的操作系统,仅仅隔离了进程、文件系统和网络等资源,资源隔离性比较弱,利用率比较高。
虚拟机是会创建自己的操作系统,资源隔离更强,不同虚拟机之间相互影响较小。
深圳hsq golang开发 3.18 、40min
等后续,全程问实习有难点,有点想去
Golang:
go语言的特点
谈谈对GMP的了解
项目:
·项目架构介绍
·服务之间如何通信的:通过http协议,是用内网方式还是外网的方式,追问:内网会不会效率更高
·redis实现定时功能解释:
·追问:通过zeset去轮询,如何设置时间戳score,定时后取数据后如何去用?zeset是存的什么数据(回答)
·轮询的时间间隔是多少?
·每天推送的数据量有多少?
·模块是如何接入第三方服务的?通过接口吗?业务也是通过接口来介入消息推送的吗?是同一工程里吗?
·这个接口是用标准库做的还是一些第三方库
·引入redis的作用(缓存、定时轮询推送、)消息量不是很大,引入MQ不用redis会不会更好(这里考得是redis的场景真的需要吗)
反问:业务是什么?团队规模、面试流程
深圳ty集团 golang开发 3.18 、50min
项目+基础知识挖的细(估计挂了,要补补基础了)
项目:
·讲讲项目应用场景,举例子(深度学习balbala)
·数据源在文件系统里存吗?是什么样的文件?整体有多大?(了解什么大数据、分布式文件系统吗)
·项目启动的流程
·优先级是怎么保证的?优先级高的怎么被执行的?如果现在有两个进程执行同一个最高优先级的任务,怎么确实是哪个线程来抢到任务而不是两个都会抢到?这里分布式锁如何实现
(项目反思,主要是开始没有讲清项目的一些重要概念和逻辑,尤其是在深度学习这个例子下)
Redis:
·redis装在4核的机器和2核的机器性能会更高吗不考虑网络I/O的情况下(没实操过懵了)
·启动一个golang的程序是多进程的还是多线程的?golang的多线程和多进程有什么关系/区别?
MySQL:
·聚簇索引是什么?索引出来的数据结果是什么?
·b+树的优缺点?缺点主要是什么?如何保证b+树的平衡
·举例·:有1、2、4、5,现在插入3,分情况讨论树会怎么变化
·追问:删除操作,b+树又是怎么变化的呢?(回答了合并节点、借父兄节点)
·继续问:极端例子,叶子节点一共从1 ~ 100,删掉1 ~ 50,剩下的树会怎么变化?
计网:
调用http协议做服务间的信息传递时,传参的方式有哪几种?(参数写到body里。回答其他的:参数放到head里、放到url的字符里)
·可以用get方法把参数写到body里吗?
45min结束,面试官有水平,问的蛮细,听考察对基础知识的掌握程度的
一周面试整体总结:
1.基础不足,比如对http报文的格式、b+数插入删除数据保持平衡的形式等
2.项目讲解的思路不对,一些基础性的概念应该在介绍最开始就表述出来,防止后续面试官没懂一直问
3.刷刷算法把,过几天要有难的面试了
4.最近毕设和面试赶一起了,有点喘不过气,不要把面试都压一天了,一天1~2面感觉是最好的,希望后续能再来点好一点的厂子把!还有希望yjs导师可别催我了。。。
