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 湖北
佬投的春招还是实习?
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 江苏

相关推荐

04-13 19:24
门头沟学院
点赞 评论 收藏
分享
04-10 13:54
已编辑
美团_后端开发(实习员工)
timeline4.2美团一面4.4美团二面4.7邮件面经:4.2 美团一面1.问项目中的难点2.在项目中如何使用redis的?3.说一下项目使用redis的背景,有什么功能需求,redis是如何实现的,然后使用redis的好处,还使用了其他那些组件。redis还有那些常用数据结构,应用场景有哪些?4.说一下私聊会话的功能和数据流程5.会话消息放在redis里还是放在mysql里,redis如何做持久化?6.redis这些功能很多mysql也能实现,为什么要使用redis?7.说说jwt,为什么jwt比cookie更加安全?jwt是如何进行加密的,cookie不能加密吗?8.如何进行的统一鉴权,能说说流程吗?如何控制访问的权限。说说token校验身份的具体流程。最常用的token校验方式是什么?说说有哪些加密算法。token有那几部分组成?9.说一说数据同步的流程。如何增强灵活性和健壮性的。xxl-job是依据什么判断数据同步的?全量同步和增量同步策略是依据什么进行选择和判断的?历史连接和全量同步的关系?10.能否用具体的例子和具体的数据说明数据同步的整个流程?布隆过滤器是如何使用的?11.如何保证数据同步流程中消息的有序性,尤其是修改的消息的有序性?12.视频播放是怎么实现的。13.说说future是怎么用的。14.数据批量处理,什么流程,是如何进行消息拆分,提交和聚合的。15.讲一下线程池的核心参数和工作流程。16.讲一下项目的模块化是怎么做的17.讲一下平常是如何进行学习,有什么学习方法18.谈一下对AI的了解,对ai编程工具的了解,用ai和ai编程工具主要拿来干什么?4.4美团二面1.问我用ES做了什么。使用了那些ES相关的方法?了解ES底层原理吗,说说lucene的原理2.说说对索引的理解,正排索引和倒排索引的区别3.算法大数相加,可以用ai4.token用的什么数据结构存的5.Redis+设备指纹时,token存在redis里面,如果有几亿的用户,打算用什么数据结构去存?6.如果除了token还有其他的信息要去存,你该用什么结构去存?7.如果量级变得更大,要用到集群,你打算用哪种redis的集群去做?8.合并请求怎么做9.分片上传与断点续传10.项目是单实例还是多实例11.如果是在集群模式下多台服务器执行同一个任务,怎么保证任务执行的不重复性12.讲一遍数据同步,xxl-iob在集群模式下怎么做定时任务13.如果服务器资源非常富裕,请你用现在数据同步的组件来实现集群的数据同步怎么做14.项目的线程池参数怎么设置的15.项目里用到了springBoot的哪些注解?16.Spring的bean初始化后执行一个方法用什么注解17.B+树优点二面时面试官很满意,当场口头发放offer,让我学对应的东西。4.7 hr确认信息4.8收到邮件感想:1.好的项目经历很重要,可以帮助获得面试机会,展现对技术和业务的理解。主要用的项目是白袜哥aigcbilibili项目,微信手把手带教,感谢白袜哥。可以从0基础带学带教,包括八股和项目。2.一定要多参加面试,对项目进行熟悉,能够流利的表达出来,根据star法则的方式表达清楚。可以展现自己的良好逻辑思维,还有尽量不要卡壳。3.面试的时候要自信,声音洪亮清晰,整个人要有正能量,仪表整洁。
菜鸡实习秋招:项目经历很重要
点赞 评论 收藏
分享
04-15 23:42
中山大学 Java
ResourceUtilization:过几天楼主就会捧着一堆offer来问牛友们该怎么选辣
点赞 评论 收藏
分享
评论
68
294
分享

创作者周榜

更多
牛客网
牛客企业服务