摘要:
概述 插入排序是一种简单直观的排序算法. 插入排序的工作原理就是, 对于未排序数据, 在一排序序列中从后向前扫描, 找到对应的位置并插入. 插入排序算法描述如下: 从第一个元素开始, 该元素可以认为已经被排序 取出下一个元素, 在已经排序的元素序列中从后向前扫描 若序列中的元素大于取出的元素, 则向 阅读全文
摘要:
概述 选择排序是一种简单直观的排序算法. 它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素, 存放在序列的起始位置,直到全部待排序的数据元素排完. 选择排序是不稳定的排序方法. 选择排序是从序列中选出最大或最小数, 将其放到最前面, 然后继续选择, 故而叫做选择排序, 个人理解. 阅读全文
摘要:
首先 需求来了 有如下几个封装好的函数供调用: 现在需要在每个函数执行前进行日志记录: 第一个方案 修改每个函数,添加日志记录的代码 但这样显然不太好,存在大量的重复代码,可以将重复代码封装为一个方法 第二个方案 这样的确是比第一个方案好多了,但是不符合开闭原则,即现有的代码不要去修改,而在基础的功 阅读全文
摘要:
概述 Vector与ArrayLIst类似, 内部同样维护一个数组, Vector是线程安全的. 方法与ArrayList大体一致, 只是加上 synchronized 关键字, 保证线程安全, 下面就不具体分析源码了, 具体可以查看ArrayList中的源码分析. Vector源码分析 1.主要字 阅读全文
摘要:
分布式经典结构 如图所示的结构, 当前端接收到请求时, 通过计算key的哈希值, 将哈希值模3, 然后分布到不同的后端服务器上 但是, 这样的结构当添加或减少后端服务器时就暴露了问题, 每次添加或减少后端服务器, 放在服务器中的所有数据都要全部重新计算哈希, 将哈希值摸新的台数, 重新添加. 如此, 阅读全文
摘要:
什么是生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循 阅读全文
摘要:
概述 LinkedHashSet与HashSet类似, 不同的是LinkedHashSet底层使用LinkedHashMap维护元素插入的顺序. LinkedHashSet继承自HashSet, 只是重写了HashSet的构造方法, 初始化一个LinkedHashMap, 其他均与HashSet相同 阅读全文
摘要:
注释: /* */1、css和html的结合方式 (1)用(每个)html标签上的style属性结合 (2)使用html的<style>标签 (3)在style标签里使用语句 @import url(css文件路径);(某些浏览器不支持) (4)使用头标签link引入外部css文件2、css的选择器 阅读全文
摘要:
概述 ArrayList可以理解为动态数组, 根据MSDN的说法, 就是Array的复杂版本. 与数组相比, 它的容量能动态增长. ArrayList是List接口的可变数组的实现. 实现了所有可选列表操作, 允许包括null在内的所有元素. 数组的特点, 查询快增删慢. 每个ArrayList实例 阅读全文
摘要:
概述 Hashtable也是基于哈希表实现的, 与map相似, 不过Hashtable是线程安全的, Hashtable不允许 key或value为null. 成员变量 Hashtable的数据结构和HashMap一样, 采用 数组加链表的方式实现. 几个成员变量与HashMap一样: 方法 Has 阅读全文