Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
清新范er
JavaGuide
提交
c5c96add
J
JavaGuide
项目概览
清新范er
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c5c96add
编写于
12月 01, 2019
作者:
S
Snailclimb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update 【真实面试经历】我所经历的阿里一二面总结(附详解).md
上级
a45f1ae5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
54 addition
and
2 deletion
+54
-2
docs/essential-content-for-interview/real-interview-experience-analysis/【真实面试经历】我所经历的阿里一二面总结(附详解).md
...nterview-experience-analysis/【真实面试经历】我所经历的阿里一二面总结(附详解).md
+54
-2
未找到文件。
docs/essential-content-for-interview/real-interview-experience-analysis/【真实面试经历】我所经历的阿里一二面总结(附详解).md
浏览文件 @
c5c96add
本文的内容都是根据读者投稿的真实面试经历改编而来,首次尝试这种风格的文章,花了几天晚上才总算写完,希望对你有帮助。本文主要涵盖下面的内容:
本文的内容都是根据读者投稿的真实面试经历改编而来,首次尝试这种风格的文章,花了几天晚上才总算写完,希望对你有帮助。
本文主要涵盖下面的内容:
1.
分布式商城系统:架构图讲解;
2.
消息队列相关:削峰和解耦;
3.
Redis 相关:缓存穿透问题的解决;
4.
一些 Java 基础问题;
4.
一些基础问题:
-
网络相关:1.浏览器输入URL发生了什么? 2.TCP和UDP区别? 3.TCP如何保证传输可靠性?
-
Java 基础:
下面是正文!
...
...
@@ -148,3 +152,50 @@
更多关于布隆过滤器的内容可以看我的这篇原创:
[
《不了解布隆过滤器?一文给你整的明明白白!》
](
https://github.com/Snailclimb/JavaGuide/blob/master/docs/dataStructures-algorithms/data-structure/bloom-filter.md
)
,强烈推荐,个人感觉网上应该找不到总结的这么明明白白的文章了。
**面试官:**
好了好了。项目就暂时问到这里吧!下面有一些比较基础的问题我简单地问一下你。内心os: 难不成这家伙满口高并发,连最基础的东西都不会吧!
**我:**
好的好的!没问题!
**面试官:**
浏览器输入URL发生了什么?
**我:**
内心 os:“很常问的一个问题,建议拿小本本记好了!另外,百度好像最喜欢问这个问题,去百度面试可要提前备好这道题的功课哦!相似问题:打开一个网页,整个过程会使用哪些协议?”。
> 图解(图片来源:《图解HTTP》):
>
> <img src="https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/url输入到展示出来的过程.jpg" style="zoom:50%;" />
>
> 总体来说分为以下几个过程:
>
> 1. DNS解析
> 2. TCP连接
> 3. 发送HTTP请求
> 4. 服务器处理请求并返回HTTP报文
> 5. 浏览器解析渲染页面
> 6. 连接结束
>
> 具体可以参考下面这篇文章:
>
> - [https://segmentfault.com/a/1190000006879700](https://segmentfault.com/a/1190000006879700)
**面试官:**
TCP和UDP区别?
**我:**
> ![TCP、UDP协议的区别](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/tcp-vs-udp.jpg)
>
> UDP 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等
>
> TCP 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的传输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。
**面试官:**
TCP如何保证传输可靠性?
**我:**
> 1. 应用数据被分割成 TCP 认为最适合发送的数据块。
> 2. TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
> 3. **校验和:** TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。
> 4. TCP 的接收端会丢弃重复的数据。
> 5. **流量控制:** TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制)
> 6. **拥塞控制:** 当网络拥塞时,减少数据的发送。
> 7. **ARQ协议:** 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
> 8. **超时重传:** 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录