上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页
摘要: 对于在Map中插入、删除和定位元素这类操作,HashMap是最好的选择。然而,假如你需要对一个有序的key集合进行遍历,TreeMap是更好的选择。基于你的collection的大小,也许向HashMap中添加元素会更快,将map换为TreeMap进行有序key的遍历。 阅读全文
posted @ 2020-12-18 17:04 LinYanyan 阅读(235) 评论(0) 推荐(0)
摘要: 栈和队列两者都被用来预存储数据。java.util.Queue是一个接口,它的实现类在Java并发包中。队列允许先进先出(FIFO)检索元素,但并非总是这样。Deque接口允许从两端检索元素。栈与队列很相似,但它允许对元素进行后进先出(LIFO)进行检索。Stack是一个扩展自Vector的类,而Q 阅读全文
posted @ 2020-12-18 17:03 LinYanyan 阅读(652) 评论(0) 推荐(0)
摘要: Iterator的fail-fast属性与当前的集合共同起作用,因此它不会受到集合中任何改动的影响。Java.util包中的所有集合类都被设计为fail->fast的,而java.util.concurrent中的集合类都为fail-safe的。当检测到正在遍历的集合的结构被改变时,Fail-fas 阅读全文
posted @ 2020-12-17 19:49 LinYanyan 阅读(103) 评论(0) 推荐(0)
摘要: Java.util.Collections是一个工具类仅包含静态方法,它们操作或返回集合。 它包含操作集合的多态算法,返回一个由指定集合支持的新集合和其它一些内容。这个类包含集合框架算法的方法,比如折半搜索、排序、混编和逆序等。 阅读全文
posted @ 2020-12-17 19:48 LinYanyan 阅读(178) 评论(0) 推荐(0)
摘要: ArrayList、HashMap、TreeMap和HashTable类提供对元素的随机访问。 阅读全文
posted @ 2020-12-17 19:47 LinYanyan 阅读(947) 评论(0) 推荐(0)
摘要: l虚拟机栈(栈帧中的局部变量表)中引用的变量 l方法区中类静态属性引用的对象 l方法区中常量引用的对象 l本地方法栈中JNI引用的变量 阅读全文
posted @ 2020-12-16 11:43 LinYanyan 阅读(151) 评论(0) 推荐(0)
摘要: 相同点: 1 都实现了Map接口 2 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异 不同点: 1 hashMap允许NULL作为key和value,而hashtable不允许 2 hashMap线程不安全,Hashtable线程安全 3 ha 阅读全文
posted @ 2020-12-16 11:34 LinYanyan 阅读(105) 评论(0) 推荐(0)
摘要: HashMap初始容量大小为16,一般来说,当有数据要插入时,都会检查容量有没有超过设定的thredhold,如果超过,需要增大Hash表的尺寸,但是这样一来,整个Hash表里的元素都需要被重算一遍。这叫rehash,这个成本相当的大 阅读全文
posted @ 2020-12-16 10:12 LinYanyan 阅读(388) 评论(0) 推荐(0)
摘要: 访问一个不存在的key,缓存不起作用,请求会穿透到DB,可能DB也没查到,流量大时DB会挂掉。 解决办法: 1.采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤; 2访问key未在DB查询到值,也将空值写进缓存,但可以设置较短过期时间。 阅读全文
posted @ 2020-12-16 10:00 LinYanyan 阅读(102) 评论(0) 推荐(0)
摘要: 如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩。 解决办法: 没有完美的解决方案,可以通过随机算法让失效时间随机分布,避免同一时刻失效。 阅读全文
posted @ 2020-12-16 09:57 LinYanyan 阅读(56) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页