后端工程师 专题汇总

后端工程师 面试经验分享列表,共232

| 内部推荐
面试过程:

4轮技术面+1轮hr面,hr面主要咨询目前有哪些offer,工资地点是否服从调配,以及之前的项目中,如何进行团队合作的,5轮面试都是1对1面试

面试官问的面试题:

问简历的内容,其实还行。主要环节是,智能指针拷打,一致性哈希拷打,RPC拷打。
用过C++11吗?
用过
知道 unique_ptr 吗?
知道,是独占所有权的智能指针
怎么实现独占所有权?怎么转移所有权?
b = a; 怎么实现?b = move(a); 怎么实现?
就是说了移动构造函数/移动赋值运算符的流程
知道 shared_ptr 吗?
知道,是共享所有权的智能指针
怎么实现的共享所有权?
引用计数
引用计数和管理的内存地址怎么实现的?是同一块内存空间吗?
都在堆区
make_shared 会放在同一个空间
引用计数和管理的内存是相生相依的吗?
没搞懂,最后就问了这两个是同时创建的吗?
其实不是,传入 new xxx 的构造函数就不是
同样问了 shared_ptr 的 b = a; 怎么实现?b = move(a); 怎么实现?
同样说了下拷贝构造函数/拷贝赋值运算符、移动构造函数/移动赋值运算符的流程
(想问点分布式存储相关的)知道raft吗?
只了解是个分布式共识算法,没了解具体内容(论文都没看,我可不敢说我了解了)
看我没有相关经历,那就挖一挖简历吧
知道一致性哈希吗?
顺便提了一嘴自己的RPC实现了这个东西
解释一致性哈希是什么,然后开始深挖一致性哈希,怎么减少这种数据的移动,分桶结果改变的
然后开始引出虚拟节点
互斥锁,信号量使用的场景区别
一个线程互斥,另一个线程同步
互斥锁,读写锁,自旋锁的区别
八股文,只说了自旋锁,就没让继续说了
怎么实现自旋锁
说了原子操作,test and set指令(tsl)
RPC的实现流程?
八股文
怎么在同一个端口,发布多个服务?
就说说自己咋实现的
怎么实现的超时?
socket设置,recv超时
然后开始问重试机制,如果需要我实现应该怎么实现?
最大重试次数,计数
如果同时发出很多个RPC请求,这个qps上不去,咋办?
不知道,想了一会说,也不能总是创建很多个线程吧
然后就说可能得用I/O多路复用了
RPC调用的同步和异步,和之前说的同步和异步,是一个意思吗?
socket的同步阻塞,是收到数据前,一直阻塞,等着
这个是在得到调用结果前,是否可以继续做下面的事情
那我继续问,如果同一个RPC调用,按照你之前的重试机制实现,如果前一个请求(涉及到写,非幂等,比如文件创建)是成功的(但是做的太久,设置的超时太短,以为超时失败了),后面重试的请求失败了(显示文件已创建),应该怎么解决?
想了很久,说同一个请求的数据包都是通过请求id关联的,
那么每个请求,都单独开个线程去等(因为重试的次数本就不多),然后请求到的结果,放入哈希表,当然,也放到队列里面
通过请求id,索引哈希表,看看有没有最近的成功请求结果,如果有,之后的失败请求,就没必要记录了
那么,根据这个实现,如果第一次的请求是响应成功的,但是由于网络原因失败,应该怎么办?
不懂了,之后没继续深挖
那么就说webserver吧(简历的项目名称不是webserver,不过被一眼看出,老面试官了)。你知道I/O多路复用机制,除了epoll,还有啥吗?
select,poll,原理差不多,没让说具体原理
ET和LT的区别?
八股文
ET和LT哪个性能更好?
一般认为ET更好,毕竟可以从内核中少拷贝就绪文件描述符
但是,ET伴随着使用非阻塞socket,要一次性读完、写完数据,也就是说可能进行的 read 或者 write 系统调用会更多
至于是否真的更好,目前没有定论,需要在更多的环境、场景下去测试

赞一下(10) 踩一下

| 网上申请
面试过程:

1. Spring模块介绍,数据依赖Mybatis
2. Bean的管理,容器启动的过程,在使用过程中修改Bean
3. HashMap的底层逻辑
4. 索引是用什么存储的,什么情况下用索引
5. 怎么应对高并发情况
6. 手撕是算存款存10年后的钱

面试官问的面试题:

1. Java里的元注解(@Target、@Retention、@Document、@Inherited、@Repeatable)
2. JDBC的步骤(创建驱动-连接-执行-遍历结果-关闭)
3. 应用层有哪些协议,对应的端口(http-80/https-443/smtp-25/pop3-110/ftp-21命令+20数据/dns-53/ssh-22/tftp-69)
4. 问个人职业发展、base地要求、有什么offer、可以来宁波线下终面吗

赞一下(0) 踩一下

| 网上申请
面试过程:

首先做一个简单的自我介绍,主要包括学校经历和工作经历。我工作经历只有一年,大部分时间都是在做产品设计和UI/UX Design,因此隔着电话都能感受到面试官的shock。
Java基础。自动拆装箱如何实现,String,StringBuffer,StringBuilder的异同以及各自的实现。
JVM基础。JVM的内存模型,常见的垃圾回收算法。
事务ACID,编程时如何保证事务,分布式情况下如何保证事务。
由于分布式相关场景我没有接触过,因此面试官一直诱导我去设计实现一个分布式事务。
数据库乐观锁和悲观锁。如何实现一个乐观锁。
消息队列使用场景,Kafka的架构以及原理。
什么是restful api,和rpc调用有什么区别。
单例的几种写法。volatile关键字有什么作用。
以上就是电话面试的大体问题,面试完之后,又发给我三道算法题目,要求我一小时内完成,下面是三道算法题:
翻转一个long类型数字。例如输入123456L,输出654321L。- Leetcode翻转integer的变种。考察能否正确处理溢出的情况。
输入一个double,要求返回与它最接近的.49或.99的数字。例如12.77返回12.99,11.02返回10.99,12.61返回12.49。
有三个线程ABC分别向一个数组中写入a,l,i,要求最终的写入结果形如alialiali...写入次数由A线程决定。
这三道题目做的还比较顺利,第二天面试官又联系我阐述一下第一题和第三题的思路,然后通知我可以参加下一轮了。

面试官问的面试题:

二面主要考察了一些开放式的问题。
首先还是自我介绍。主要是工作后的经历。介绍一下工作一年所在team的产品,我承担了什么职责。
开放式问题。如何设计一个rpc框架。
开放式问题。如何设计一个服务注册中心。
集合类源码。HashMap是如何实现的,扩容的过程,为什么要扩容为2倍。HashMap中的链表替换为数组可以吗?时间复杂度相同吗?
集合类源码。线程安全的HashMap是什么?(HashTable和ConcurrentHashMap)ConcurrentHashMap是如何实现的?(Java7分段锁和Java8的CAS+Lock)和HashTable相比有什么优势?
红黑树的结构,时间复杂度是多少,如何计算的.
什么是CAS操作,如何实现一个自定义锁
数据库设计。有一张很大的order表,如何设计能够提升查询效率(同时满足根据买家id和卖家id查询)?
二面也同样是一小时左右,面试过程还算顺利。
ps.一面二面结束后面试官都各种暗示我要疯狂加班能不能接受blabla……
首先做一个简单的自我介绍,主要包括学校经历和工作经历。我工作经历只有一年,大部分时间都是在做产品设计和UI/UX Design,因此隔着电话都能感受到面试官的shock。
Java基础。自动拆装箱如何实现,String,StringBuffer,StringBuilder的异同以及各自的实现。
JVM基础。JVM的内存模型,常见的垃圾回收算法。
事务ACID,编程时如何保证事务,分布式情况下如何保证事务。
由于分布式相关场景我没有接触过,因此面试官一直诱导我去设计实现一个分布式事务。
数据库乐观锁和悲观锁。如何实现一个乐观锁。
消息队列使用场景,Kafka的架构以及原理。
什么是restful api,和rpc调用有什么区别。
单例的几种写法。volatile关键字有什么作用。
以上就是电话面试的大体问题,面试完之后,又发给我三道算法题目,要求我一小时内完成,下面是三道算法题:
翻转一个long类型数字。例如输入123456L,输出654321L。- Leetcode翻转integer的变种。考察能否正确处理溢出的情况。
输入一个double,要求返回与它最接近的.49或.99的数字。例如12.77返回12.99,11.02返回10.99,12.61返回12.49。
有三个线程ABC分别向一个数组中写入a,l,i,要求最终的写入结果形如alialiali...写入次数由A线程决定。
这三道题目做的还比较顺利,第二天面试官又联系我阐述一下第一题和第三题的思路,然后通知我可以参加下一轮了。
二面结束后的第三天,就收到了现场三面的通知。
三面是一个大Boss,因此面试的问题都更考察一些分析问题的能力。
介绍一下你工作一年学习到什么?所在项目的架构是什么样的?UI/UX设计有哪些规范(由于我说我学到了一些UI/UX设计方法,因此面试官就问了)?
数据隔离级别,脏读幻读。
线程池原理。
Synchronized的实现,锁的升级过程。
K8s的作用,K8s的底层架构。
对我业余时间做的一些项目做了介绍。
你觉得加入阿里你能给阿里带来什么?
进入阿里你需要忍受很多困难,需要迎难而上,如果绩效考评拿到差评,你会怎么办?
三面总的来说也还算顺利,面试官也算和蔼。

赞一下(1) 踩一下

1 2 3 4 5 6 7 8 9 10 11   共 12 页