一、面试问题

  1. 自我介绍
  2. 问到了开源社区的经历,有没有投入到开源社区的建设。
  3. 学习技术的初心是什么?
  4. 实习期间碰到的困难有哪些?
  5. 实习期间有什么难忘的事情?

以上部分聊了十分钟

  1. 对LRU的理解,使用LRU算法实现一个缓存,说下思路。
  2. 如何判断一个单链表中是否有环。
  3. 说下快速排序。快速排序的空间复杂度最优可以是多少?
  4. 说说一致性Hash算法。
  5. 说下HTTP的常用状态码。
  6. 为什么开始用Socket写,后面用Netty框架改进。
  7. 说一下Netty的NIO。
  8. Netty里如何处理粘包和拆包。
  9. 之前有做过Java Web的相关项目吗?
  10. 谈谈对cookie和session的理解。
  11. 在分布式集群情况下如何处理session会话?
  12. 但是如果前端的请求没有命中确定服务器,怎么处理session请求。
  13. 还有什么方案呢?(讲到分布式集群这块的时候通话不是很清晰)
  14. 说一下数据库事务的特性。
  15. 说一下脏读、不可重复读和幻读的区别。
  16. 说一下MySQL中的四种隔离级别。
  17. 说一下主键和唯一索引的区别。
  18. 说一下乐观锁和悲观锁,结合数据库方面。
  19. 数据库里实现乐观锁我们可以怎么做?用SQL实现下。
  20. Java的锁优化机制清楚吗?
  21. 谈谈你对JVM内存分区的了解。详细说下堆吧。
  22. 再说得详细些。
  23. JVM对象回收涉及到哪些算法?不同情况采用什么算法。
  24. 那再说一下Java的双亲委派机制。
  25. 对Java反射这块有了解吗?
  26. Spring经常用的注解有哪些?
  27. 我们聊一下设计模式吧,说一下策略模式,代理模式。

以上聊了40分钟

  1. 聊一下个人的优点和不足吧。
  2. 平时老师、同学,或者同事、主管对你是怎样的评价。
  3. 说一下个人往后规划的方向。
  4. 平时学习的话会从哪些地方获取知识。
  5. 好,我没有问题了,你有啥想问的。

以上聊了10分钟


二、薄弱环节复盘

大厂,尤其是阿里和腾讯,分布式的知识是一个重点考察方面,作为加分项存在。
本次面试中的session一致性问题以及一致性hash算法就是分布式中的知识点。

(一)session一致性

问题背景:分布式集群情况下,如何保证在反向代理情况时,可以在对应web服务器上找到正确的session。

单机情况

在单机情况下是不存在session一致性问题的,因为所有session都在一台服务器上,会话请求通过Nginx反向代理服务器肯定会命中服务器,找到对应的session。(如下图所示)

分布式情况

但在分布式情况下问题就变得复杂了起来,Nginx负责转发请求,但因为Tomcat集群有多台机器,假如我们需要请求的session在第一台机器上,但Nginx把我们的请求转发到第三台机器上,这样就命中失败。后果是Nginx返回一个错误信息,告知用户需要重新登录或者重新提交。

解决之道(两个主流方案)

一、后端集中统一存储

将所有的session都存储在web服务器的存储层,如redis缓存。
因为session的读取频率很高,redis能较好得满足高可用的需求。如果采用数据库的话可能压力比较大。
这样做的优点是

  1. web服务器重启或者扩容都不会造成session数据丢失。
  2. 方便维护和扩展。
  3. 没有安全隐患。(和将session保存在客户端相比)

缺点是增加了一次网络调用,同时因为涉及到架构调整,还要修改对应的代码。

二、反向代理hash一致性

目的:保证一个用户的所有请求都落到一台web服务器上。
有两种方案,分别是四层代理hash和七层代理hash。

  1. 四层代理hash:利用用户的IP地址做hash运算,以保证同一个IP的请求都落在一台服务器上。
  2. 七层代理hash:使用HTTP协议中的某些业务属性来做hash,例如sid,user_id等,能够更加灵活地实施hash策略,以保证同一个浏览器用户的请求落在同一个web服务器上。

这样的话,只要hash函数设置得好,使hash分布均匀,那么多台服务器就是负载均衡的。而且只需要修改nginx的配置即可,不需要修改功能代码。它也支持web服务器的水平扩展。
缺点的话,服务器重启时会丢失session数据,但这可以认为是session过期(session本身就有生命周期),让用户重新登录即可。还有,web服务器水平扩展时需要进行rehash,这可能导致部分用户的session无法正常找到。

(二)一致性hash算法

2022-04-11 阿里CTO线 Java开发实习生 一面面经相关推荐

  1. 阿里新版《Java 开发手册(泰山版)》来了,很多规范值得学习

    ​ 阿里的<Java开发手册>距离上次发布已经过去了 10 个月了,而这次发布也增加了很多干货内容,比如:新增 34 条规约,修改描述 90 处,其中错误码规则更是第一次提出完整的解决方案 ...

  2. C++手册_阿里新版《Java 开发手册(泰山版)》内容解读(附下载地址)

    阿里的<Java开发手册>距离上次发布已经过去了 10 个月了,而这次发布也增加了很多干货内容,比如:新增 34 条规约,修改描述 90 处,其中错误码规则更是第一次提出完整的解决方案,发 ...

  3. Java开发实习生面试经历与总结

    Java开发实习生面试经历与总结 更新日期:2020年1月1日 一.引言--初生牛犊不怕虎 2019年 我是从大二暑假开始,正式进入Java的学习.大二上学期的时候,学校开设了只有11周的Java程序 ...

  4. 吉比特java开发_JVM 吉比特后台 Java 开发实习生 20 分钟一轮游 _好机友

    吉比特后台 Java 开发实习生 20 分钟一轮游 作者:胖若两人 链接:https://www.nowcoder.com/discuss/155198?type=2&order=3& ...

  5. 网易2018实习生招聘笔试题-JAVA开发实习生

    网易2018实习生招聘笔试题-JAVA开发实习生 如何从有数字规律的网址抓取网页并保存在当前目录?假设网址为 http://test/0.xml,其中这个数字可以递增到100. for(int i=0 ...

  6. 记京东Java开发实习生二面

    京东Java开发实习生二面已挂,心情虽然失落,但是还是要在这里做一点作结,以便日后做些参考.让每一次失败都变的有意义! 面试流程 这次面试的流程比较简洁,首先问了两道技术问题,然后面试官对于我的简历中 ...

  7. 阿里云部署Java开发环境

    阿里云部署Java网站和微信开发调试心得技巧(上) 本文主要是记录在阿里云服务器从零开始搭建Java执行环境并且部署web project的过程,方面以后查阅. 一.申请阿里云服务器 购买阿里云服务器 ...

  8. 阿里和唯品会java开发手册通读链接

    1.阿里java开发手册:阿里java开发手册 2.唯品会java开发手册:唯品会java开发手册 唯品会开源工具VJTools介绍: 1.vikit码云地址:vjkit 目前最新引用pom < ...

  9. 在CSDN逮到一个阿里10年老Java开发,聊过之后收益良多...

    老话说的好,这人呐,一单在某个领域鲜有敌手了,就会闲得蛋疼.前几天我在上班摸鱼刷CSDN的时候认识了一位阿里JAVA开发大佬,在阿里工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有一 ...

最新文章

  1. 03-老马jQuery教程-DOM操作(上)
  2. 安装Hue后的一些功能的问题解决干货总结(博主推荐)
  3. 《教师教学究竟靠什么--谈新课程的教学观》之交往与互动的教学观 心得体会三...
  4. CF1260C-Infinite Fence【结论题】
  5. 小鹏NGP自动导航辅助驾驶Beta版体验:论软件,这台量产车可能是第一
  6. UVa 1592 数据库
  7. IMDB 2003.07.12 最新排名
  8. 强大!用 60 行代码自动抢微信红包
  9. 三年磨一剑——微信OCR轻松提取图片文字
  10. java 生成随机加减乘除_用Java随机生成四则运算
  11. vim 怎么显示空格_vi查看空格、制表符等特殊符号
  12. C++流操作练习:统计一篇英文(The_Holy_Bible.txt)文章中出现的单词和词频 并组成字典
  13. python模糊查询mongodb_Python札记 -- MongoDB模糊查询
  14. 1. Linux系统简介
  15. SVAC 2.0安全系统组成
  16. windows 通过cmd命令连接wifi
  17. Win11WSA无法启动的解决办法
  18. Raven2靶机练习
  19. 关于 RabbitMQ,应该没有比这更详细的教程了!
  20. 常见的数学建模比赛汇总(参考资料)

热门文章

  1. 什么是虹膜识别,虹膜识别有哪些优缺点?
  2. 用python实现神经网络
  3. 博弈论 思路及模板代码
  4. jsp中(s标签)各种基本的表达
  5. 狄耐克漫云智慧病房系统助力医院评级建设
  6. win10 SystemParametersInfo 设置屏保 不好使_win10优化软件用什么?来看一看这款:windows优化大师 win10...
  7. Android-UI 慕淘旅游
  8. 面试常见数据结构问题
  9. Linux及操作系统介绍
  10. PCB设计——购买元器件出现的问题