1h35m再战淘天

面了一个半小时,面完就躺了,所以这个时候来写面经,凭记忆写吧,问的有点多实在记不全了。不过面试官是目前以来碰到的最好的面试官,其实蛮简单的我不知道他却说自己问的有点难了(感谢给台阶)。同时也感觉这位面试官相对以前遇上的感觉更重实际场景一些,很多问题根本我在常规的八股文里根本没遇上。没回答的题目主播默认是自己回答的还不错,这篇主要用来给自己复盘失误点,牛友们感兴趣可以自己去了解或者问我也行(但我比较菜,自己也可能讲不清楚)。

自我介绍

一些日常项目拷打,和前几天差不多,这里就不多说了(其实是记不得到底问了些啥了)
唯一记得的就是主节点挂了,从节点还没来得及同步数据该怎么办(这题提前看过大佬的面经和小伙伴的提问所以记得很清楚),给了两种方案:
一种是做半同步,保证主节点写入数据的同时至少有一个以上的从节点已经同步了数据。
第二是直接主从切换,做活动降级并流转其他接口页面,等重新校准redis数据之后再将活动重新上线,还说实际上redis挂掉的几率很小,第一种方式会一定程度的造成性能下降(相对于异步复制数据),所以最终可能会选择第二种方式。(这里感谢xfg的解决方案

开始超长时间的八股:

计网部分(这部分和os一直是薄弱项):
1.端口作用及底层原理。作用大概知道,但是原理完全忘了(主播八股都是靠guide背的,guide没重点提及的部分我就都忘了
2.知道作用在哪层吗。也是理所当然的不知道了。。
3.了解网络分层模型吗。
4.tcp在哪层。传输层,说了之后面试官就引导我说那端口作用在哪层的你也知道了吧
5.tcp报头有了解吗。只记得有几个标志位
6.http和https区别
7.https为什么安全
8.中间人可以截取https信息的ip地址吗。没刻意了解过这方面,面试官说没事,可以分析一下,我想了想不是很确定但还是说了应该可以。
9.有哪些常用状态码。
10.从输入url到展示页面有哪些步骤。
11.cookie了解吗。

os部分:
1.进程线程在java中的体现?感觉问的有点广,当时再确认了一遍,面试官让说说概念和区别也行。
2.假如在main方法中创建了子线程,当main方法调用完毕后子线程还在运行,java程序会停止吗。想了想蒙了个不会。
3.linux用过哪些常用命令。随便说了几个

java基础+spring:
1.说一下你对多态的理解。还好昨天刚被问到,一口气背了一大堆。
2.说一下你对aop的理解和实现逻辑。
3.JDK和CGLIB实现区别。果然只要我上一题不说区别面试官就会主动问嘿嘿
4.说一下类加载过程。
5.为什么要用双亲委派模型加载类。这里也没去思考过,当时临时想了重复利用类加载器减少资源消耗?(真的是现场编的,大脑一片空白)面试官说不是这个原因,不过也放过了我
6.如果程序在运行中,此时新加入一个类,且保证这个类能被程序扫描到,能在运行中加载吗。说实话又没想过这个问题,当时让我自己思考一下,主播也是想了想大部分类也是在需要用到的时候再去加载,所以回答了应该可以。
7.说一下jvm内存区域。
8.java内存模型了解吗(JMM)。这个直说记不得了,确实一直没被问过这个点,之前背的全忘了
9.synchronized底层原理。说了是利用monitor实现的,但详细忘了,还好面试官也没追问
10.synchronized可作用于哪些地方呢。
11.这里提了一嘴项目,说假如不采用任何锁(包括cas和其他乐观锁),有什么保证线程安全的方案。这里想了半天说了一些,但都被自己反驳了(大脑里面自己跟自己打架),最后也是没回答上,说了靠业务避免或者用事务,但是面试官说没回答道到点,但没关系
12.问了常见垃圾回收算法
13.CMS了解吗,用的什么回收算法,在哪些版本CMS是默认垃圾回收器,之后呢。哪些版本默认确实有点忘了
14.了解过哪些设计模式,讲一讲。说了一些,然后最后为了保险起见,详细举例用了单例

mysql+redis:
1.了解哪些nosql。直说比较了解redis
2.mongodb呢,我看你简历写了mongodb(属于是给自己挖坑了,后面更新简历把这里删了但平台没去更新):直说项目没有需要使用的场景,所以只是了解,没太多实际经验,面试官也没接着问
3.redis数据类型
4.zset数据结构。为什么用跳表,和其他相比?
5.缓存问题三件套。
6.布隆过滤器原理。可以解决什么问题。
7.分布式了解多少。说了了解的不多,事务和锁算比较了解。然后详细问了分布式锁的实现。
8.mysql索引底层,做对比。老熟人了
9.聚簇索引和非聚簇索引。这里给自己挖坑了,说非聚簇索引存的是数据指针,需要回个表。
10.覆盖索引呢,需要回表吗。这里纯属当时脑抽,开始自己小脑大脑打架,印象里覆盖索引不用回表,但是又想到存的不是指针吗,应该回表呀,最后只能向面试官阐述了我的思考,然后又得到了没关系还是看的不深、
11.事务隔离级别,性能。
12.为什么要设置四种隔离级别。应该就是想问并发事务问题,讲了讲这方面

这里已经一小时多了,我以为快结束了,结果开始手撕。
题目是用生产-消费者模型进行0-100数字依次打印,要求A线程是生产者,随机时间20ms-100ms生产消息。B消费2的倍数,C负责消费3的倍数和公倍数,D负责消费其他。面试官让可以说思路和用伪代码。我就先说了思路,但当时自己也还没完全想清楚实现方法:
1.用volatile+锁
2.用semaphore

第一种虽然我知道大概怎么做,但一直没实现过,而之前有用semaphore做过轮流打印数字,想着直接在这个基础上修改就行,最终选了这个。

结果也是为了背模板,一口气先把消费者写完了,一到实现具体printnum方法的时候就有些不熟了,当时为了简便,也没管单独抽象方法出来做复用了,直接用的lambda表达式加三个for循环,然后也没做命中处理,直接就每个数字三个线程都跑一次,谁能打印就打印,打印不了也给我跑!(好暴力)。然后面试官看时间也差不多了,也没让我继续写,让我说了说思路。然后这个时候才发现我甚至是直接用for循环产生数据的,完全忘了生产者了,不过还好当场讲清楚了优化方法,生产者生产之后根据逻辑把信号量交给对应消费者,消费者消费完毕后再把信号量交给生产者,这样也就不用做命中处理了。面试官看了看代码,听完思路觉得差不多了也是准备结束了

反问日常问业务(其实想不出来问啥)

面完立马5分钟跑到教学楼做实验去了,回来躺了一晚上不想学

(后续,25号约了二面)
全部评论
xd和我面的同一个部门啊。是不是面试官长得比较斯文,带个眼镜,然后眨眼睛好像有时候比较用力。说不会就会说没关系
4 回复 分享
发布于 03-21 22:27 湖南
这么难啊,刚想投,感觉还得沉淀
2 回复 分享
发布于 03-24 15:14 重庆
淘天一共几面啊佬
2 回复 分享
发布于 03-21 08:22 四川
二面吗
2 回复 分享
发布于 03-21 07:23 江苏
友友面的淘天哪个部门
2 回复 分享
发布于 03-21 01:57 湖北
阿里系面试都长,面了两小时多。。面到1h40m我以为结束了,结果还要做算法题。。。
1 回复 分享
发布于 04-28 20:55 北京
佬投的春招还是实习?
1 回复 分享
发布于 03-27 11:47 湖北
二面咋样了
1 回复 分享
发布于 03-25 20:25 安徽
大佬业务技术基础平台具体是做啥业务的呀
点赞 回复 分享
发布于 04-15 20:41 四川
佬今天的面试题和我今天面字节的好像,如果看过佬的面试题,估计今天就拿下一面了
点赞 回复 分享
发布于 04-09 00:18 四川
感觉好难啊
点赞 回复 分享
发布于 04-08 10:20 广西
mark redis集群
点赞 回复 分享
发布于 04-07 22:39 山东
硕士吗
点赞 回复 分享
发布于 04-04 19:42 湖北
我勒个八股盛宴
点赞 回复 分享
发布于 03-24 23:11 上海
接好运
点赞 回复 分享
发布于 03-23 22:31 江苏
这个生产消费怎么考虑呀
点赞 回复 分享
发布于 03-22 19:39 上海
好难啊 疯狂拷打
点赞 回复 分享
发布于 03-22 14:31 江苏
拷打确实太大了,感谢佬的面经让我感受到了阿里的难度
点赞 回复 分享
发布于 03-21 08:19 江苏
main方法那个要看线程是不是守护线程
点赞 回复 分享
发布于 03-21 08:17 江苏

相关推荐

05-16 18:41
已编辑
北京航空航天大学 Java
岗位:AI平台大模型部署系统研发工程师一面自我介绍(1min)项目拷打(30min)小哄书(就是黑马点评[捂脸R])1.看你采用了Redis+本地缓存,本地缓存具体用的什么?(答的Caffeine,其实只知道个名字),为什么叫本地缓存?(存在本地内存里?)。好像还问了什么几层缓存,没怎么答上来。为什么要用本地缓存?2.看你用到了布隆过滤器,它的参数(数组长度,哈希函数的个数)要如何设置?会误判吗?3.你这里用了Redis全局唯一id生成,如何生成的?听说过雪花算法吗,为什么不用?4.如何进行库存控制(防止超卖)?如何保持Redis和数据库数据一致?乐观锁原理?在CAS失败时如何处理?5.这里看你提到了Redission分布式锁,它里有哪些锁?6.为什么要用Lua防止超卖?Lua和Redission作用的关系是什么,替代还是互补?7.消息队列消息提交失败了怎么办?Redis stream和RocketMQ为什么选用后者?8.你用BitMap记录用户签到,它的容量大概是多少?能存一年的吗?知道它的扩容机制吗?校内外送平台(就是苍穹外卖[okR])1.为什么JWT要用双签发?2.这里的RBAC权限系统什么意思?怎么实现的?3.Spring Task怎么处理超时订单的?如何防止重复推送?4.催单优先级队列按照什么依据排序的?5.阿里云OSS支持分片上传和断电重连吗?你上传的时候发生异常怎么办?重来吗?开发图片压缩过滤器,使传输带宽节省40%如何得出的?6.WebSocket心跳机制怎么实现?发送信号需要消耗带宽,如何权衡资源和连接可靠性?7.JMeter验证验证接口并发成功率99.2%,是在QPS为多少的情况下得出的?八股(25min)1.Redis有哪些基本数据结构?底层是什么?--学过哪些语言?(主要是C,Java),那来问问你Java吧。2.volatile关键字知道吗?它有什么作用?volatile和synchronized关键字有什么区别?volatile能保证线程安全吗(在类似i++的情况下)?3.重写和重载的区别?4.Java面向对象有哪些特点?刚刚你提到了多态,重写和重载都算体现了多态吗?5.Java允许多继承吗?为什么不?知道C++吗?C++允许多继承吗?如果在Java里类A继承了两个类B和C会怎么样?当A调用B和C都有的一个方法后,会调用哪个方法?6.Java中的线程,操作系统中的线程和CPU中的线程有什么区别?7.Java中的锁知道哪些?为什么锁要可复进?8.为什么要使用线程池?构造线程池的参数有哪些?9.知道云原生(还有什么什么的,不是很了解)吗?你现在大二?学校是不是不教Spring这些?有接触过大模型相关的吗?平常用大模型写代码吗,哪种用得比较多?手撕(5~10min)直接上力扣做的,题号112(还是122?),一道easy,提交有bug只对了一半,说时间关系看了思路没问题先不debug了。反问(5min)1.我看这个岗跟AI有关,但是投的时候招聘要求只有Java,Spring这些,我投错了吗?答:内部主要用python,语言不重要,讲了他们做什么但是我没怎么听懂,反正就是什么训练,调用大模型的平台。2.一周要求到岗五天,可以周末去吗?答:只能周一到周五。([哭惹R][哭惹R][哭惹R])3.还有什么需要着重学的?答:目前业内Spring这种已经很成熟了(可能是说过时了什么的[捂脸R]),要多了解一下比较前沿的技术。(还夸了我一下大二知道这么多已经很不错了,隐隐感觉这句话不太好[哭惹R])感觉面试官人不错,有时候不对的会告诉正确答案,不过大多数时候他都是说ok,好这种,不知道是不是对了的意思,我完全答不出来的都说的不了解。面试时间几乎精确1个小时。总之第一次面试就这样吧。星期天在boss上乱点投了几个,星期一突然来两个约面还都是小红书,另一个岗是写的很正常的后端开发,一开始我以为打电话来的是这个就答应面试了,结果过了一个小时左右又一个电话打过来约面才反应过来一开始约的是这个什么大模型系统的岗,普通后端岗知道情况就说让我先面这个了,他推迟(目前还没有再约)。第一次背八股,还要重新熟悉一下不到20天过完的两个项目,leetcode也是一个多月之前刷的,匆忙准备了三天不到面试了。不过比想象中的好,至少大部分都能讲一些出来,不知道是不是面试官看出来了照顾我[黄金薯R]。5月16日补充:还问到了k8s,但是我真的不了解。
一念诤心:还得是9,用这两个项目都能有面,加油
点赞 评论 收藏
分享
评论
76
319
分享

创作者周榜

更多
牛客网
牛客企业服务