端点
base:杭州
笔试:
TCP三次握手、四次挥手过程中客户端和服务端的状态 TCP
三次握手:
- client调用connect()发送请求,转为SYN_SEND状态,传送
SYN seq=x
报文给server; - server调用listen方法转为LISTEN状态,当server收到client的请求时,转入ESTABLISHED状态,并向client传送ACK=x+1和SYN seq=y的响应报文;
- 当client收到server的响应时,转入ESTABLISHED状态,并向server传送ACK=y+1的响应报文。
三次握手进行TCP客户端和服务器端之间的连接,第一次连接的作用是client端需要请求连接;第二次的作用是server端确认接收连接,并通知client自己有接受消息的能力;第三次连接是为了让服务端直到client有接收消息的能力。
数据传输的过程:
- client通过write()发送
seq=x+1
ACK=y+1
给server; - server通过read()读取信息,反馈给client
ACK=x+2
需要断开连接时:
- client调用close()方法转为FIN_WAIT_1,向server传送
FIN seq=x+2
和ACK=y+1
的结束报文; - server接受到报文后转为CLOSE_WAIT状态,向client传送ACK=X+3的确认断开连接的报文,client接受之后转为FIN_WAIT_2;
- 等待server端处理完毕,调用close()方法,转入LAST_ACK状态,传送FIN seq=y+1报文可以断开,client收到报文后转为TIME_WAIT状态等待关闭连接;
- 经过一段时间,client向server发送ACK=y+2报文
- client调用connect()发送请求,转为SYN_SEND状态,传送
2. Linux中输入命令ls -al anaconda-post.log
,输出-rw-r-r- 1 root root 12123 Oct 1 2019 anaconda-post.log
的含义解释:第一个符号-
表示文件类型;rw-
表示可读可写;接着两个r-
分别表示所属组的权限和其他人的权限,都是可读;数字表示文件被调用次数;两个root分别表示所有者u
,所属组g
;12123
是文件大小,单位字节;接下来是文件最后一次修改时间;最后是文件名。
若多个进程共享同一个文件 F,则下列叙述中正确的是:来自408真题·操作系统
A、各进程只能用“读”方式打开文件 F
B、在系统打开文件表中仅有一个表项包含 F 的属性
C、各进程的用户打开文件表中关于 F 的表项内容相同
D、进程关闭 F 时系统删除 F 在系统打开文件表中的表项答案:B
解析:多个进程可同时以“读”或“写”方式打开文件F,即A选项错误;
整个系统只有一张系统打开文件表,即在系统打开文件表中仅有一个表项包含文件F的属性,即B选项正确;
用户进程的打开文件表关于同一个共享文件的表项内容不一样相同,比如读写指针不一致,即C选项错误;
进程关闭文件时,只会将文件的引用计数count减去1,当引用计数count变为0时,系统才会删除F在系统打开文件表中的表现,即D选项错误。【补充】每个进程都有它自己的文件表项(file对象),其中有它自己的文件位移量
AB都正常工作,B未监听到任何端口,此时A向B的80端口发送SYN包,会收到什么类型的回包?RST包(reset)参考TCP中RST详解:RST表示复位,用来异常的关闭连接
一面 54min
1. 项目介绍;对于Java方向的偏向,职业规划
2. 项目中是否有稍微复杂一些的功能?是否有订购功能?假设给一个拼团的需求,如何设计?【提示:从业务逻辑角度设计一个闭环的拼团流程,也就是完成该功能的步骤,如下单的业务流程:打开页面、加购、支付、结算;退款、维保等】
3. Q: 很多人拼团,涉及到并发,如何设计?前提条件是分布式系统,单纯设置信号量的方式可能不行。可能需要用到分布式锁。
4. 没用过分布式相关知识,提到了spring boot框架:
Q: bean的生命周期?
A: 实例化ApplicationContext对象,扫描解析类,生成BeanDefination对象,将解析后的信息作为对象属性,放入map中,spring会遍历map,验证返回BeanName,推断构造方法,通过反射构建对象,将对象封装成BeanMapper对象,然后后置处理器通过AOP代理,将对象放入单例池中......
Q: bean初始化完成之后需要修改,需要通过什么接口对其进行修改?
A: spring本省就包含一些相应的触点,我说的是beanFactory中的
5. 浏览器输入一个网址,回车到达服务器的过程?springMVC的执行过程?handler是否用于处理对应的逻辑?
6. spring如何处理循环依赖?
7. 为什么要用三级缓存?二级缓存就可以解决这个问题呀~
8. 【Java基础】Java的四种引用;hashcode有什么用?如果两个对象值相等,其hashcode是否相等?hashmap1.8的底层原理;hashmap 2倍扩容有什么好处吗?
9. 【Java锁相关】
Q: 你知道Java中的相关锁吗?
A: 乐观锁、悲观锁;公平锁,非公平锁;独占锁;CAS,同步锁
Q: Java中的乐观锁有哪种?
A: CAS
Q: 一般来说我们会如何使用他,是否看过某个框架使用过乐观锁,可以详细聊聊。ConcurrentHashMap每个bucket的头节点插入用到了CAS,
A:
Q: 锁同步的几种,常用的synchronized和Lock(ReenTrantLock),说说二者的区别。他们两者的底层原理有什么不同
Q: AQS是否了解?
Q: 线程池的使用?Executor的四种区别,分别用在什么场景比较合适?是否了解过其同步队列?
10. 反射、泛型是否用过?泛型擦除
11. Java设计模式是否用过?单例模式如何定义?饱汉模式和饿汉模式分别怎么写?是否会存在线程安全问题?如何设计?
12. Q: 介绍一下MySQL的索引,建议从搜索引擎、对应的索引、对应的原理按顺序讲述。
A: Q: 聚簇索引和非聚簇索引最大的区别是什么? A:
13. 其他技术栈像redis,ES等是否用过?
14. 反问:业务主要ToB端,云维护部署等服务,包括类似于阿里云的工***台和类似于Wiki百科的数据库平台,都是微服务类的项目;技术栈:spring boot、spring cloud、dubbo、redis、mysql、ES等
15. 有没有用过docker相关的东西?一周内通知
全部评论
(2) 回帖