摘要: 算法:通过堆排序,获取前N个最大数 在一组无序数组中,比如{1,9,8,2,7,3,6,4,5} 将数组看做是一个堆,也可以用二叉树来表示 但是这个堆现在还不是大顶堆,大顶堆的特点是父节点永远大于左右子节点 第一步需要将这个堆构建成大顶堆 构建前需要知道的几点: 二叉树的最后一个非叶子节点,计算公式 阅读全文
posted @ 2019-07-24 00:19 Tom爱Jerry 阅读(2042) 评论(0) 推荐(1) 编辑
摘要: RocketMQ整理 概念 broker MQ服务节点 topic 主题 message queue 消息队列,类似于kafka中的partition producer 生产者,先去连接name server,查询到对应的broker信息,再去连接broker consumer 消费者,先去连接na 阅读全文
posted @ 2019-07-23 11:13 Tom爱Jerry 阅读(546) 评论(0) 推荐(0) 编辑
摘要: Redis中3种特殊的数据类型 Bitmap Bitmap就是通过一个bit位来表示某个元素对应的值或者状态 其中的 key 就是对应元素本身,实际上底层也是通过对字符串的操作来实现 Redis 从 2.2 版本之后新增了setbit, getbit, bitcount 等几个 bitmap 相关命 阅读全文
posted @ 2019-07-22 23:06 Tom爱Jerry 阅读(1707) 评论(0) 推荐(0) 编辑
摘要: dubbo负载均衡策略和集群容错策略都有哪些? 负载均衡策略 Random (随机) 默认情况下,dubbo是random load balance随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权重来负载均衡,权重越大分配流量越高,一般就用这个默认的就可以了 Round 阅读全文
posted @ 2019-07-21 13:15 Tom爱Jerry 阅读(684) 评论(0) 推荐(0) 编辑
摘要: HashMap 1.8 hashmap构造函数 hashmap的hash算法 扰动函数就是为了解决hash碰撞的。它会综合hash值高位和低位的特征,并存放在低位,因此在与运算时,相当于高低位一起参与了运算,以减少hash碰撞的概率。(在JDK8之前,扰动函数会扰动四次,JDK8简化了这个操作) h 阅读全文
posted @ 2019-07-20 22:28 Tom爱Jerry 阅读(202) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap1.7和1.8对比 数据结构 1.7中采用Segment+HashEntry的方式实现 ConcurrentHashMap初始化时,计算出Segment数组的大小ssize和每个Segment中HashEntry数组的大小cap,并初始化Segment数组的第一个元 阅读全文
posted @ 2019-07-20 22:16 Tom爱Jerry 阅读(3549) 评论(0) 推荐(3) 编辑
摘要: Spring整理 Spring IoC和DI的理解 IoC Inversion of Control 控制反转,将之前我们自己去new一个对象这件事,交给Spring来帮我们管理 DI Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入 阅读全文
posted @ 2019-07-16 14:35 Tom爱Jerry 阅读(216) 评论(0) 推荐(0) 编辑
摘要: /** * 通过方法传参 如何交换两个数的值 * * @author zhuliang * @date 2019/7/14 10:39 */ public class SwapValueDemo { public static void main(String[] args) throws Exception { Integer a = 1; ... 阅读全文
posted @ 2019-07-14 11:39 Tom爱Jerry 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 分布式缓存 1 Redis和Memcached有什么区别? redis支持服务端的数据操作,Memcached需要将数据取回到客户端修改后再set回去 redis拥有更丰富的数据结构与操作api 使用简单的key-value存储的话,Memcached的内存利用率更高,但是如果使用hash结构的话, 阅读全文
posted @ 2019-07-12 12:25 Tom爱Jerry 阅读(2352) 评论(0) 推荐(0) 编辑