面试相关

HashMap与HashTable、ConcurrentHashMap

HashMap:线程不安全 在多线程情形下会导致死循环

HashTable:线程安全但是效率低下synchronized保证线程安全弊端 进入等待或轮训场景既不能put也不能get。

ConcurrentHashMap:分段锁 锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。

vector,list

ArrayList :线程不安全,内部是通过数组实现的,它允许对元素进行快速随机访问

LinkedList : 链表形式,方便插入,不方便查询

vector:线程安全 效率低.

进程线程差异:

进程中包括有多个线程,进程与进程之间是相对比较独立的。

TCP三次握手:客户端给服务端发送syn包(syn=x),更改状态为SYN_SEND状态;服务端返回SYN(ack=x+1)给客户端将状态改为SYN_RECV;客户端再次发送服务端ACK(ack=y+1),更改状态为ESTABLISHED完成三次握手。

四次挥手

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

 

posted @ 2020-05-25 14:42  老小包的博客  阅读(78)  评论(0编辑  收藏  举报