写服务端
为了实现在一台电脑上可以登录多个客户端,并且他们之间正常通讯,每次创建客户端的时候要给出一个端口号,这样就能实现多个用户在线但是不混淆,所以我在用户类那加了个socket
//为了找寻用户信息方便,采用HashMap进行存储,静态无需创建对象,类名点即可
static HashMap<String,User> userBox = new HashMap<>();
HashMap存取机制:
Hashmap实际上是一个数组和链表的结合体,利用数组来模拟一个个桶(类似于Bucket Sort)以快速存取不同hashCode的key,对于相同hashCode的不同key,再调用其equals方法从List中提取出和key所相对应的value。
Java中hashMap的初始化主要是为initialCapacity和loadFactor这两个属性赋值。前者表示hashMap中用来区分不同hash值的key空间长度,后者是指定了当hashMap中的元素超过多少的时候,开始自动扩容,。默认情况下initialCapacity为16,loadFactor为0.75,它表示一开始hashMap可以存放16个不同的hashCode,当填充到第12个的时候,hashMap会自动将其key空间的长度扩容到32,以此类推