集合学习--HashTable 源码初探
HashTable装填因子的定义α=表中填入的记录数哈希表的长度\alpha=\frac{表中填入的记录数}{哈希表的长度}线性探测再散列的哈希表查找成功时的成功查找长度Snl≈12(1+11?α)S_{nl}\approx\frac{1}{2}\left(1+\frac{1}{1-\alpha}\right)随机探测在再散列丶二次探测再散列丶再哈希的哈希表查找成功时的平均查找长度为Snr≈?1αl …… 阅读全文
HashTable装填因子的定义α=表中填入的记录数哈希表的长度\alpha=\frac{表中填入的记录数}{哈希表的长度}线性探测再散列的哈希表查找成功时的成功查找长度Snl≈12(1+11?α)S_{nl}\approx\frac{1}{2}\left(1+\frac{1}{1-\alpha}\right)随机探测在再散列丶二次探测再散列丶再哈希的哈希表查找成功时的平均查找长度为Snr≈?1αl …… 阅读全文
1.获取部门列表2.根据部门的Id映射部门实体类先看下部门实体类public class TbEnterpriseDepartment { private int id; private String name; private int number; private int parentId; private List<TbEnterpriseDepartm …… 阅读全文
众所周知的NIO的两个重要组件就是buffer与channel,那么他们是怎么相互传输数据呢。那么还支持多buffer => 单channel的转换 …… 阅读全文
Selector可以拥有无限制个连接,当然在硬件承受范围之内。通过不断的轮询selectionKey查看当前的可操作的通道,也可以在注册到selector上面。也可以保存通道做一个点对点的聊天播放器。规定消息的格式,比如lisi:nihao 给李四发送消息nihao。 //保存姓名和网络地址(host:port)的一一对应关系 Map<String, SocketAddress> nameA …… 阅读全文
对应的测试类 public static void main(String[] args) { String path = "D:" + File.separator + "data.txt"; File file = new File(path); try( FileReader fr = new FileReader(file); …… 阅读全文
/** * 测试字符串转换日期(严格模式) * * Lenient => 宽容 * */ @Test public void testExactingDateFormat() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //S …… 阅读全文
前两天测试问了个问题,就是内存爆掉,排查原因是因为缓存东西太多,而他把缓存的东西读取到list中,每请求一次读取一次,没有释放掉导致内存溢出,本来还以为是请求过多是nio的原因。后来经过nio的socketChannel 和 ServerSocketChannel测试, 在配置jvm参数(-Xmx100M -Xms100M -Xmn30M)发现在客户端有5000不到的空连接的时候,会出现内存溢出, …… 阅读全文
标准IO 是通过new File的方式访问, 这种方式的访问会先把磁盘的文件缓存到操作系统层面,再有操作系统缓存到应用程序层面(Java程序层面),这种访问最慢。直接IO是略过操作系统层面,直接访问文件进行文件的读写,减少了磁盘缓冲到操作系统层面。Java中是由DirectByteBuffer,但是这种机制的缺点也是有的,对于没有做好一个好的程序缓存管理,或者一直需要读取新的文件的时候,还是需要直接 …… 阅读全文