1.hashmap的实现原理?
https://www.cnblogs.com/chengxiao/p/6059914.html
hashmap本质上是个entry数组,每个entry包含一个key-value键值对;HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。
2.如何将线程不安全的hashmap变成线程安全?
a.Map m = Collections.synchronizedMap(new HashMap());
b.重写hashmap,使用乐观锁对代码块进行拆分。
3.虚拟内存的理解?
虚拟内存技术本质上是一种缓存的思想,它将物理内存看做是一个磁盘的高速缓存,物理内存只保存活动区域,并根据需要在磁盘和内存之间传送数据。
4.TCP为什么要三次握手?
第一次握手是客户端向服务器发送包,然后服务器发送包。这一步让服务器知道了客户端的数据发送功能以及服务器的数据接收功能正常;
第二次握手是客户端接收到包,然后发送包。这一步让客户端知道服务器的数据接收能力和发送能力是正常的,自己的两个功能也是正常的。
第三次握手,客户端发包,服务器收到,这一步让服务器得出结论,双方的功能都正常,可以进行可靠的数据连接。