2013年11月19日

HashMap总结

摘要: 一、基础知识准备: 1.散列函数即哈希函数:一般的线性表,树中,记录在结构中的相对位置是随机的,即元素位置和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。 理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对 应,这种关系就是就是数学上的散列函数,说白了哈希函数就是一种数学关系式。 2.散列表(Hash table,也叫哈希表),是根据(Key value)而直接进行访问的数据结构。也 阅读全文

posted @ 2013-11-19 23:55 lovebeauty 阅读(343) 评论(0) 推荐(0)

由ConcurrentLinkedQueue扯到线程安全 待整理

摘要: 前几天项目总是报错,找了下原因。ConcurrentLinkedQueue 本身是一个基于链接节点的无界线程安全队列,你自己调用就不用考虑线程安全了吗?结论是:原子性操作当然是线程安全的,非原子性那就不安全了原子性操作:queue.add(obj); orqueue.poll();非原子性操作(这里涉及到两个操作,在大并发的时候,在两个方法之间,在中间这个时刻,即当调用完了queue.isEmpty()的时候,可能有人操作了queue.poll(),在当你调用queue.poll()的时候,队列已经为空了,所以就出现异常了)if(!queue.isEmpty()) { queue.po... 阅读全文

posted @ 2013-11-19 18:00 lovebeauty 阅读(8446) 评论(0) 推荐(0)

导航