摘要:
单例模式概念 1.什么是单例模式? 保证整个系统中一个类只有一个对象的实例,实现这种功能的方式就叫单例模式。 2.实现单例模式的思路 1. 构造私有: 如果要保证一个类不能多次被实例化,那么我肯定要阻止对象被new 出来,所以需要把类的所有构造方法私有化。 2.以静态方法返回实例: 因为外界就不能通 阅读全文
摘要:
1.基本数据结构 1. JDK1.7 数组 + 链表 2. JDK1.8 数组 + (链表 | 红黑树) 2.树化与退化 1.树化意义 1.红黑树用来避免Dos攻击,防止链表过长时性能下降,树化应该是偶然情况,是保底策略. 2.hash 表的查找,更新的时间复杂度是 O(1),而红黑树的查找,更新的 阅读全文
摘要:
1.扩容机制 1.扩容是懒惰式的,即没有添加元素前,即时指定了容量,也不会真正的创建数组 2. add(Object o) 方法首次扩容为10,再次扩容为上次的1.5倍 3. addAll(Collection c) 方法首次扩容(没有元素)为10,或者添加的元素实际个数,取两者间的最大值 4. a 阅读全文
摘要:
1.快速排序描述 1.每一轮排序选择一个基准点(pivot)进行分区 1.让小于基准点的元素进入一个分区,大于基准点的元素进入另一个分区 2.当分区完成时,基准点元素的位置就是其最终位置 2.在子分区重复以上过程,直至子分区元素个数少于等于1,这体现的是分而治之的思想(divide-and-conq 阅读全文
摘要:
1.选择排序 1.何为选择排序: 以升序为例: 1.将数组分为两个子集,排序的和未排序的,每一轮从未排序的子集中选出最小的元素,放入排序子集. 2.重复上述步骤,知道数组有序 2.优化方式 1.为减少交换次数,每一轮可以先找到最小的索引,再每轮最后交换元素的位置 3.与冒泡排序比较 1.两者的时间复 阅读全文
摘要:
二分查找 何为二分查找 1,前提:有已排序数组 A (假设已经做好) 2.定义左边界 L 、右边界 R ,确定搜索范围,循环执行二分查找(3、4两步) 3.获取中间索引 M = Floor (( L + R )/2) 4.中间索引的值 A [ M ] 与待搜索的值 T 进行比较 ① A [ M ]= 阅读全文
摘要:
1、RabbitMQ RabbitMQ各组件的功能 Broker: 一个RabbitMQ实例就是一个Broker Virtual Host: 虚拟主机。相当于Mysql的DataBase, 一个Broker上可以存在多个vhost,vhost之间相互隔离。每个vhost都拥有自己的队列、交换机、绑定 阅读全文
摘要:
Nginx概念 Nginx 是一个高性能的 HTTP 和反向代理服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。 Nginx 专为性能优化而开发,性能是其最重要的考量指标,实现上非常注重效率,能经受住高负载的考验,有报告表明能支持高达50000个并发连 阅读全文
摘要:
目录 安装erlang 安装RabbitMQ 启动命令 WEB管理 用户管理 登陆 回到顶部 安装erlang 由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。 安装依赖 yum -y install gcc glibc-devel make ncurses-devel 阅读全文
摘要:
简介: DelayQueue是BlockingQueue的一种,所以它是线程安全的,DelayQueue的特点就是插入Queue中的数据可以按照自定义的delay时间进行排序。只有delay时间小于0的元素才能够被取出。 先看一下DelayQueue的定义: public class DelayQu 阅读全文