
算法与数据结构
Java架构师养成记
这个作者很懒,什么都没留下…
展开
-
自己动手实现LRU、FIFO缓存淘汰算法, LinkedHashMap的妙用
自己动手实现LRU、FIFO缓存淘汰算法, LinkedHashMap的妙用 **LRU(Least recently used,最近最少使用)**算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 FIFO(First Input First Output,先进先出),即先进先出队列。在超市购物之后会提着我们满满的购物车来到收银...原创 2019-06-07 22:04:47 · 1092 阅读 · 2 评论 -
缓存路由(一致性Hash)算法Java版实现
负载均衡之缓存路由(一致性Hash)算法Java实现 分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。比如说分布式缓存,既然是缓存,就没有必要去做一个所有机器上的数据都完全一样的缓存集群,而是应该设计一套好的缓存路由工具类,所以一致性Hash算法就因此而诞生了。 衡量一个一...原创 2019-06-10 22:02:20 · 679 阅读 · 0 评论 -
你真的会写无序数组中位数的查找算法吗?PriorityQueue的妙用
中位数(又称中值,英语:Median),统计学中的专有名词,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。 面试时,大家是不是经常被问到,怎么求一个无序数组(长度为n)的中位数? 面试官:知道什么是中位数吗? ...原创 2019-06-07 22:01:08 · 984 阅读 · 1 评论