饿了吗Java后端面经

饿了吗Java后端面经(严刑拷打50分钟)

  1. 自我介绍
  2. 哪一年开始学Java的
  3. JVM的内存结构
  4. JVM怎么判断一个对象没有被使用(引用计数法,可达性算法)
  5. 堆空间的基本结构(伊甸园,幸存区from/to,老年代)
  6. final和finally和finalize的区别
  7. 如果try中return 2,finally中return 3。请问最终会返回多少。(3)
  8. 调用System.gc后,Java内存会不会马上进行回收(不会,只有在justRanFinalization=true的时候才会执行)
  9. OSI的七层协议
  10. 五层模型是因为什么协议而从七层和四层综合成五层的(有没有大佬知道的,我是真不道啊)
  11. TCP和UDP的区别
  12. 四次挥手
  13. 为什么第四次挥手和第二次挥手不能合并确保数据能够完整传输。(按照常理的话,第二次和第三次挥手应该一起回复FIN=1和ACK=1的,但是因为服务器端可能有数据没发完,所以不能也立刻去主动申请关闭,所以要把ACK和FIN分开,再发送FIN报文给主动方,告诉主动方同意关闭连接,所以这里的ACK报文和FIN报文多数情况下都是分开发送的。)
  14. 线程和进程的区别
  15. 进程和进程之间数据共享的方式(八种)
  16. 乐观锁和悲观锁之间的区别
  17. 乐观锁和悲观锁的适用场景(读多,写多)
  18. sql语言怎么实现乐观锁和悲观锁(for update,version版本控制)
  19. 介绍下项目,项目是独立做的还是同学一起的,团队有几个人,你自己负责哪些功能
  20. 单点登录是怎么实现的
  21. 为什么用JWT,常见的实现登录的方式有哪些(cookie+session,redis+token,JWT)
  22. 用户登录是否有过期时间,再次登录时,过期时间是顺延还是继续计时(顺延)
  23. cookie和session的区别(位置,安全性,生命周期,保存数据类型)
  24. cookie中存了什么样的信息,可以判断用户有否处于登录态(Session ID)
  25. cookie被拿到以后,换一个机器访问,可以访问吗
  26. cookie被伪造的话,会导致什么问题,怎么解决
  27. redis做登录的话,其中存了什么东西(token)
  28. 那redis是怎么判断当前的请求是用户A的请求还是用户B的请求(前端header中的key,然后解密)
  29. redis中的信息是加密的还是已经解密的
  30. redis是否支持持久化(RDB,AOF)
  31. redis有哪几种用来做容灾的架构设计策略(单机,主从复制,哨兵,集群)
  32. 主从模式中,主库和从库哪个负责读哪个负责写(主)
  33. 哨兵模式中master挂了,接下来会做什么事情(Raft)
  34. 介绍下Raft算法(强推一个网站,讲的可以说是很详细了)
  35. 哨兵模式下,写redis是单台机器提供写的能力还是多台机器提供
  36. 如果写的数据量很大,redis还有其他的方案能支持更多的写吗(Redis切片集群)
  37. redis和mysql怎么保持数据一致性(延迟双删,异步更新缓存(基于binlog的同步机制))
  38. redis中的数据被删除以后,热点数据打到数据库,怎么保证数据库不会被击垮(uu萌有会的吗,我答的秒杀的那一套,消息队列,削峰什么的,也不知道对不对)
  39. 缓存击穿(修改过期时间,锁,布隆过滤器)
  40. 流量削峰怎么做(排队,答题,分层过滤)

总结:还是自己太菜了,稍微挖的深一点了,就答不出来了,感觉八股文还是要多背,一天不看就生了,两天不看就看不懂了,一周不看,之前看的全忘了。项目的话,还是不够熟悉,感觉回头要自己独立的手敲一遍。要不然面试官问的问题我都听不懂。

话说今年真的有公司有暑假实习的hc吗,我怎么到现在了一个暑假实习的offer都没有。

孩子已经看开了,就当是给秋招练手的吧,我就不该奢求暑假实习,水平还不到

#实习##面经##java##后端##阿里#
全部评论
太难了
4 回复 分享
发布于 2023-05-23 23:49 广东
关于第十题,我们老师的解释是这样的: 在早期,通信协议的设计被分为七层。这种称为OSI模型(即开放系统互联模型),包含了物理层、数据链路层、网络层、传输层、会话层、表示层和应用层七个层次。但是,在实际应用中,这些层次中的一些功能经常被合并在一起,例如在TCP/IP协议族中,会话层、表示层和应用层被合并为一层,即应用层。 另一方面,TCP/IP协议族使用了四层模型:网络接口层、网络层、传输层和应用层。而这个四层模型也有其局限性,例如无法很好地描述数据链路层在数据传输中所扮演的角色。 因此,在教学中,人们经过一段时间的总结和改进,将OSI模型和TCP/IP四层模型各自的优点相结合,提出了五层网络模型(即TCP/IP五层模型),它包括了物理层、数据链路层、网络层、传输层和应用层五个层次。这个模型更适合现代计算机网络的描述与分析。
4 回复 分享
发布于 2023-05-24 22:39 广东
hxd过了吗
3 回复 分享
发布于 2023-05-23 16:11 湖北
我也挂了,面试完直接挂,我五月份开始准备实习,一边觉得自己确实水平不行,但是真的没办法啊,三月份到五月份实验室的一堆破事一直恶心我,其他同学都在全力备战,我还在干杂活,现在杂活干完了,暑期实习也没坑位了。
2 回复 分享
发布于 2023-05-26 16:07 北京
这也太狠了吧
1 回复 分享
发布于 2023-05-23 23:50 山东
大半天忙忙碌碌,offer一个都无。
1 回复 分享
发布于 2023-05-25 15:43 江苏
好狠,约了下周面,感觉已经半截入土了😭
1 回复 分享
发布于 2023-05-25 19:18 北京
50分钟说完这么多题啊
1 回复 分享
发布于 2023-05-26 17:03 江苏
xd是饿了么下哪个部门的
点赞 回复 分享
发布于 2023-05-23 16:21 广东
raft网站是什么呀大佬
点赞 回复 分享
发布于 2023-05-23 16:26 北京
25题怎么说呀 我看百度上都说不行 但是我之前爬网易还有一些那种网站的数据 就是从cookie取的数据 伪造请求 没问题的啊
点赞 回复 分享
发布于 2023-05-23 18:03 四川
很好的积累经验的机会呀
点赞 回复 分享
发布于 2023-05-23 21:27 四川
记录的好详细,爱了
点赞 回复 分享
发布于 2023-05-23 21:42 山西
那是b站大up的国防大高材生的名言吗
点赞 回复 分享
发布于 2023-05-23 22:22 北京
第38题想问的不就是缓存击穿的解决方案吗
点赞 回复 分享
发布于 2023-05-24 00:15 浙江
阿里lazada招暑假实习,androidios客户端(广深),前端(广深),算法(广深),java(广深),产品(北京),数据(北京),测试(广深),c++(北京),要求毕业时间23年10月到24年九月,要求过6级。简历 带岗位名 到邮箱xjx284606@alibaba-inc.com可以给服务端面经!实习工资400一天
点赞 回复 分享
发布于 2023-05-24 10:24 广东
这么多题目楼主大概回答出来多少啊?
点赞 回复 分享
发布于 2023-05-24 15:13 北京
楼主是一面还是二面啊
点赞 回复 分享
发布于 2023-05-25 09:30 湖北
牛的
点赞 回复 分享
发布于 2023-05-25 11:03 海南
看看面经压力小了很多
点赞 回复 分享
发布于 2023-05-29 23:28 上海

相关推荐

03-26 20:24
已编辑
北京邮电大学 Java
面试官人很好,也很耐心,但是也喜欢咬着我不放三分钟自我介绍开局拷打项目:经典一致性问题。这里一直在聊redis库存扣减到写入sql这一整段的最终一致性。我首先讲了我目前的实现,异步扣减+手动ack持久化订单消息+定时任务更新库存。面试官说性能会不会太差,用户抽奖能立即拿到结果吗?我就说压测平均响应也在100ms以内,并且抽奖肯定有转盘动画之类的,完全能撑住。这里又问了一下并发抽奖怎么办,说了加3s过期分布式锁,限制单用户短时间内重复点击抽奖。面试官好像对回答还是不满意,接着问,假如我一定需要优化性能,减少响应速度,问我有什么改进方法,我说可以考虑还是改回自动ack,把持久化订单信息放到扣减库存后,发mq消息前(错误示范,当时没想太多,这样做redis抗并发的意义就没了,还不如直接写库)。不过面试官好像也没意识到出错了(,他目标似乎不在这上面。接着又说了半天场景(对不起我又没听明白是问啥),大概就是说,假如写库的时候会有规则校验之类的,这时候挂了咋办。(这里我已经感觉到不妙了,因为还是没明白面试官想问的方向),我说自己的项目都是把这部分给放到校验之前,保证这部分只专心做写库。还是不满意,继续追问,实际情况很复杂,假如这里就是需要做其他的校验,该怎么办。我说可以用事务来回滚,又被问分布式transactional出问题怎么办,直说了不大了解(其实就是怕被问到这儿,还是没躲过去)八股(我通过面经梳理的顺序,实际上感觉问的还挺跳跃):可能正好提到了事务,话接上文,于是问了我嵌套@Transactional会有什么问题?(后面复盘才知道当时应该是问同类下调用事务方法的失效场景)。问多态底层原理。对不起真不知道,直说了不清楚,再狡辩回答了一下多态的体现(方法重写重载等等等。。。)==和equals区别。过String的数组为什么要用final修饰?对不起我又没见过这样问的,,说可能是为了保证字符串不可变,线程安全,当时还脑洞大开说跟builder和buffer那俩相比,没有对字符串的操作而是直接生成新的字符串,性能上也会更好(实在是不知道说啥)反射的优缺点。过aop的底层原理。说了动态代理和字节码操作,又详细说了动态代理因为动态代理说到了CGLIB和JDK实现,又顺着问了我两者的区别。过jvm内存。过为什么永久代被替换为元空间。说了个永久代oom风险更高,其他记不大清了堆对象是怎么进行分代和转化的。大部分对象新生代,大对象老年代。通过年龄计数器来确定对象的升代。G1的过程和优点。过,这部分还好记挺熟io流。没怎么看,早知道不偷懒了对象创建过程。过mysql索引底层结构,和其他对比。过B+树范围查询怎么做的。从下界节点走类似中序遍历直到收集到上界节点。redo log和undo log,他俩结合起来能解决什么问题?单独说没问题,问我结合的时候我还有点懵??没懂想让我回答什么,最后说了个可以实现事务和宕机恢复(但我单独介绍也说过了,dbq不知道)。Spring启动过程。过算法(其实是说思路,变种场景题):基本有序的数组什么排序最快。插入追问为什么是插入。梳理了一下逻辑讲了讲插入的过程和可以优化到O(n)找第k个位置的元素怎么找。快速选择和堆排一个很大的文件,比如要做词典,怎么在其中匹配对应字符串。说了字典树假如连续一长串不规则字符串呢?不是很清楚,说es,但追问我es原理,说了倒排索引,继续问是怎么实现的,承认了看过一些,但没看太仔细怎么在一个串中找到出现次数超过一半的字符。说用哈希表统计然后计算。追问假如输入是一个流呢?(其实也想说哈希表也能做啊,但感觉可能想让我回答其他的)只好说不大清楚最后:毕设方向是什么?回复,我目前是大三()还没确定,问知不知道方向?我们学校一般大四才开始做毕设base地意向北京,但部门在杭州,能不能接受;ok反问:部门业务最后一个场景题做法?摩尔投票,(听到的时候感觉很熟悉,不知道好久之前看过这个,但现在忘了)#牛客AI配图神器# 总结全程1h2m,还得练,这就回去加班看事务
点赞 评论 收藏
分享
评论
38
250
分享

创作者周榜

更多
牛客网
牛客企业服务