上一页 1 2 3 4 5 6 7 8 ··· 12 下一页
摘要: 二分查找算法主要是解决在“一堆数中找出指定的数”这类问题。 而想要应用二分查找法,这“一堆数”必须有一下特征: 存储在数组中 有序排列 二分查找法的基本实现 二分查找法在算法家族大类中属于“分治法”,分治法基本都可以用递归来实现的,二分查找法的递归实现如下: 迭代实现如下: 二分查找法的O(log 阅读全文
posted @ 2018-10-10 12:01 提拉没有米苏 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1、以结果为导向,在做一件事之前,要想好你要什么,达成什么样的目标,并且这个目标可以量化,是具体的。 2、全神贯注的投入,有一种状态叫“心流”,当你做一件事的时候,真正达到了心流的状态,爱上自己的事 3、关注自己所在的场,为自己制造一个特别舒适的感觉,每个人当下都是有场的,你要记得去维护自己的场 4 阅读全文
posted @ 2018-10-10 10:22 提拉没有米苏 阅读(377) 评论(1) 推荐(0) 编辑
摘要: 首先需要思考下边几个问题: 消息丢失是什么造成的,从生产端和消费端两个角度来考虑 消息重复是什么造成的,从生产端和消费端两个角度来考虑 如何保证消息有序 如果保证消息不重不漏,损失的是什么 大概总结下 消费端重复消费:建立去重表 消费端丢失数据:关闭自动提交offset,处理完之后受到移位 生产端重 阅读全文
posted @ 2018-10-10 10:15 提拉没有米苏 阅读(22991) 评论(0) 推荐(2) 编辑
摘要: 一、应用背景 在软件开发中常遇到这种情况,实现某一个功能有多重算法或者策略,我们可以根据不同的场景选择不同的算法或者策略来完成该功能,把一个类(A)中经常改变或者将来可能改变的部分提取出来,作为一个接口B,然后在类A中包含这个接口B,这样类A的实例在运行时就可以随意调用实现了这个接口的类C的行为,比 阅读全文
posted @ 2018-10-09 10:47 提拉没有米苏 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 为什么需要使用分布式锁 为了保证同一个方法在高并非情况下的同一时间只能被一个线程执行,在传统单体应用单机部署的情况下,可以使用java并发处理的api(如Reentrantlock和synchronized)进行互斥控制,但是,随着业务发展的需要,原单体单机的系统被演化成分布式系统后,由于分布式系统 阅读全文
posted @ 2018-10-08 14:05 提拉没有米苏 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 同一进程 重入锁 使用ReentrantLock获取锁的时候回判断当前线程是否为获取锁的线程,如果是则将同步的状态+1,释放锁的时候则将状态-1,只有将同步状态的次数置为0的时候才会是最终释放锁。 读写锁 使用ReentrantReadWriteLock,同时维护一对锁:读锁和写锁。当写线程访问时则 阅读全文
posted @ 2018-09-18 21:00 提拉没有米苏 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 以下基于 JDK1.7 分析 如图所示,HashMap底层是基于数组和链表实现的,其中有两个重要的参数: 容量 负载因子 容量的默认大小是16,负载因子是0.75,当HashMap的size > 16* 0.75时就会发生扩容(容量和负载因子都可以自由调整) put方法 首先会将传入的key做has 阅读全文
posted @ 2018-09-18 16:04 提拉没有米苏 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收 需要思考的问题 1、哪种内存需要回收? 2、什么时候回收? 3、如何回收? 对象是否存活 引用计数法 这是一种非常简单易理解的回收算法。每当有一个地方引用一个对象的时候则在引用计数器上 +1,当失效的时候就 -1,无论什么时候计数器为 0 的时候则认为该对象死亡可以回收了。 这种算法虽然简 阅读全文
posted @ 2018-09-18 15:09 提拉没有米苏 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 数据库水平垂直拆分 当数据库量非常大的时候,DB已经成为系统瓶颈时就可以考虑进行水平垂直拆分了。 水平拆分 一般水平拆分是根据表中的某一个字段(主键ID)进行取模处理,将表中的数据拆到多张表里,这样每张表的结构相同但数据不同。 不但可以根据ID取模分表也可以按时间分表,比如每月生成一张表。 按照范围 阅读全文
posted @ 2018-09-17 16:47 提拉没有米苏 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 一致性哈希算法——虚拟节点 一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久 阅读全文
posted @ 2018-09-17 16:13 提拉没有米苏 阅读(7995) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 12 下一页