1,mina在做通信服务的时候,缓存是一块很重要的内容,首先看一下mina服务的容量缓存的实现代码:
IoBuffer ioBuffer = IoBuffer.allocate(16);
ioBuffer.setAutoShrink(true);
ioBuffer.put((byte)1);
System.out.println("Initial Buffer capacity="+ioBuffer.capacity());
ioBuffer.shrink();
return ioBuffer;
分析以上代码可以知道:初始化缓存容量为16,这个可以使得内部实现的时候作为缓存容量的最小值
调用的shrink()方法后,容量继续保持16,因为实际容量永不会比最小容量更小。
当容量扩充为32后,容量变为32
调用shrink()方法后,容量缩减为16,从而消除了额外的存储,这种机制是默认的,不需要显示的告诉缓存它能够缩减。