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 安徽
阿里系面试都长,面了两小时多。。面到1h40m我以为结束了,结果还要做算法题。。。
点赞 回复 分享
发布于 04-28 20:55 北京
大佬业务技术基础平台具体是做啥业务的呀
点赞 回复 分享
发布于 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-03 17:45
已编辑
门头沟学院 Java
TimeLine3.6 官网投递3.26 当天约面,下午直接一面3.27 约二面4.1 二面,当晚oc压力很大,面试官很严肃,但是学到了很多之前只停留在表面知识,感谢快手#牛客AI配图神器#八股45分钟1、自我介绍2、java new一个对象的过程是什么?结合JMM聊一下3、java内存模型是咋样的?(感觉刚刚没听清是结合JMM聊,我都往JVM上靠了)4、new一个对象的过程中,分配内存有几种方式?分配内存在并发环境下如果存在锁的竞争,JVM如何解决这个问题?5、TLAB的全称是啥?6、你刚刚好几次提到了TLAB的伊甸区,伊甸区在哪里?7、TLAB是线程独享的吗?(这个真的不清楚,猜了个共享的,面试官反问一句“你确定?”)但实际上是不共享的。8、TLAB会给每个线程划分一块小小的区域,比如100KB,但是随着线程的运行比如调用栈特别深,new了很多对象,TLAB内存不够了,这时候需要怎么办?9、类加载器有几种?10、双亲委派模型是什么?有什么好处?11、介绍一下Java的常量池12、Integer a = 1,Integer b = 129,两者相等吗?那Integer a = 1,Integer b = new Integer(1),两者相等吗?相等的原因是什么?13、介绍一下java的注解?14、知道注解的基本原理吗?15、你除了了解java原生的注解,还了解别的注解实现吗?(扯了rpc项目中的自定义注解)但是面试官想让我介绍lombok注解的原理,答不会,让我下去学一下16、介绍一下AOP17、了解的java技术栈有哪些?18、filter和interceptor的工作原理,以及他们分别解决了什么问题?19、你知道servlet吗?20、你项目(黑马点评)中,用redis解决了session共享问题,这大概做了什么事呢?21、Redis的常用数据结构有哪些,以及他们的原理22、redis的哈希和java的哈希在数据结构层面有什么区别吗?23、短信验证码怎么实现的?24、在现实生活中,发一条验证码是需要收费的,那假设有一个系统支持手机验证码登录,以及多端登录,那你怎么设计这个验证码服务呢?25、秒杀券优化里的锁是怎么实现的,了解到是数据库层面的乐观锁就没有追问了26、redis集群的架构27、那redis集群扩容的时候会有什么好处吗?28、java线程池介绍一下,有哪些参数,工作流程29、如果拒绝策略采用的是CallerRunsPolicy的话,此时核心线程满了,工作队列也满了,也到了最大线程数,而且main线程也在跑,此时如果又来了一个线程任务,会拒绝吗?答了不会,然后追问那这个新线程怎么办呢?30、做题 力扣22 括号生成31、学java多久了?32、介绍一下两阶段提交#快手##日常实习面试#
求offer的花生米很聪敏:卧槽一眼望去全特么是钩 vm
点赞 评论 收藏
分享
4.1(1h57min)1、自我介绍(2min)2、面试官自我介绍(本地核心商业-基础研发平台-??没听清) 基础知识考察3、介绍一下 TCP 的三次握手以及四次挥手4、为什么握手是三次,不是两次或者四次5、四次挥手一定是四次吗6、说一下 TCP 的全双工7、了解哪些 JAVA 的集合类8、list 和 linkedlist 它两者的使用场景有什么区别9、简单说一下 linkedlist 在中间插入的算法复杂度是多少(O(n))10、hashmap 底层数据结构是什么11、什么时候会触发 hashmap 的扩容12、如何解决 hash 冲突13、如果有两个线程同时往 hashmap 去 put 同一个 key 不同的 value 会有什么风险14、根据这个点说一下 ConcurrentHashmap 的线程安全提现在哪几个方面,为什么hashmap是线程不安全,比如手同时去并发操作一个 hashmap 会有什么问题(讲了同 key 并发扩容可能会有问题)15、讲一下 ConcurrentHashmap 如何保证线程安全的(jdk 两个版本都讲了)16、除了加锁还有什么方式保证线程安全(CAS)17、CAS 在实际应用过程中会有什么问题吗(答了自旋性能消耗)18、那在业务上会有什么问题(答了 ABA)19、如何避免 ABA 问题(版本号)20、上述所有的场景都是对于共享变量的一些操作保证它的线程安全,有没有其它方案做一些线程隔离呢(ThreadLocal)21、详细说一下 ThreadLocal22、讲一下线程池参数23、详细说一下拒绝策略24、现在有一个场景 往线程池提交一个任务但是这个任务里有一个子操作也是往相同的线程池提交一个任务(线程池参数:核心线程 5,最大线程 10,阻塞队列 10,拒绝策略调用提交任务的线程执行)会有什么问题25、什么情况会用无界队列,什么情况会用有界队列26、假设现在有一个机器的 cpu 是八核,内存 16g 那么他用无界队列队列会有什么问题27、简单说一下 spring 的 Bean,它在内存的加载过程是什么样的(比如启动之后它注入的 bean 是如何加载到内存中的)28、假设在 Bean 的初始化过程中,你想在对象 new 出来之前去做一个初始化的操作,你建议用什么方法。29、简单说一下 initializingBean 和 postConstruct 两个先后的执行顺序30、举个例子现在有一个项目,所有的类只有一个,也是用 Spring 框架,这个类继承了 BeanPostProcessor,正常来讲这个 BeanPostProcessor 也会做一些初始化的动作,你觉得现在这个情况下它里面的初始化方法会不会执行。中间件考察31、讲一下你了解的 redis 数据结构32、redis 的 string 底层是怎么实现的(sds+链表)33、redis 在大流量的并发场景起了什么样的作用34、redis 是如何处理这些网络请求的?比如说我有 1w 个请求进来,它怎么拿到这些请求做处理。35、假设现在有一个场景一共十个请求,我单线程处理和另一种场景也是十个请求但我有 10 个线程处理,你觉得哪种速度会更快(不好说,可能会有写的情况)36、那么假设这十个线程都是读呢(十快37、那为什么要设计成多线程呢38、假设有一百万个读请求哪个更快(单快)39、讲一下 mysql 底层为什么要是 B+树而不是 B 树40、b+树在 I/O 方面和 b 树有什么区别41、聚簇索引和非聚簇索引的区别42、为什么不是所有索引的叶子节点都存放数据43、索引失效44、讲一下隐式转换这种索引失效案例实习、项目考察45、省略(主要问了实习的一下工作和压测相关的问题)开放性问答以及手撕(合并两个有序链表)反问是心软面试官了,面试过程中非常友好,会对没有回答上的点进行解答。-----------------1h 后约二面#美团约面#
坚定的芭乐反对画饼_许愿Offer版:现在实习招的都是什么超人
点赞 评论 收藏
分享
评论
72
302
分享

创作者周榜

更多
牛客网
牛客企业服务