摘要: 散列算法和哈希表结构 算法概述 Hash ,一般翻译做“ 散列” ,也有直接音译为“ 哈希” 的,就是把任意长度的输入(又叫做预映射, pre image ),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不 同的输入可能会散 阅读全文
posted @ 2019-02-01 17:57 技术-刘腾飞 阅读(2582) 评论(0) 推荐(0) 编辑
摘要: 桶排序 概述 桶排序Bucket Sort从1956年就开始被使用,该算法的基本思想是由E. J. Issac R. C. Singleton提出来。 桶排序是一种效率很高的排序算法,它的时间复杂度为O(N+M),(N个元素,范围为0 M),但桶排序有一定的限制,必须为非负整数,而且元素不宜过大 设 阅读全文
posted @ 2019-02-01 17:00 技术-刘腾飞 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Spring事务传播行为 概述 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为 事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。 事务的分类 Java事务类型分为JDBC事务跟JTA事务 JDBC事务:即为上面说的数据 阅读全文
posted @ 2019-02-01 15:46 技术-刘腾飞 阅读(150) 评论(0) 推荐(0) 编辑
摘要: AQS 概述 AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架 AQS原理 AQS的实现依赖内部的同步队列(FIFO双向队列),如果当前线程获取同步状态失败,AQS会将该线程以及等待状态等信息构造成一个Node,将其加入 阅读全文
posted @ 2019-02-01 11:57 技术-刘腾飞 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 重入锁 重入锁指的是当前线成功获取锁后,如果再次访问该临界区,则不会对自己产生互斥行为。 Java中对ReentrantLock和synchronized都是可重入锁,synchronized由jvm实现可重入即使,ReentrantLock都可重入性基于AQS实现。 ReentrantLock还提 阅读全文
posted @ 2019-02-01 11:55 技术-刘腾飞 阅读(213) 评论(0) 推荐(0) 编辑
摘要: CAS 算法介绍 CAS(比较与交换,Compare and swap) 是一种有名的无锁算法。 CAS具有原子性 CAS, CPU指令,在大多数处理器架构,包括IA32、Space中采用的都是CAS指令,CAS的语义是“我认为V的值应该为A,如果是,那么将V的值更新为B,否则不要更改该位置,只告诉 阅读全文
posted @ 2019-02-01 11:16 技术-刘腾飞 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 队列分类 单向队列 Queue extends Collection 队列实现了 Collection 接口,Collection接口是集合类的顶级接口 从前面删除元素,从后面插入元素,跟现实中排队是一样的道理 双向队列 双端队列支持同时从两端添加或移除元素 双向队列在java中的接口规范是Dequ 阅读全文
posted @ 2019-02-01 11:15 技术-刘腾飞 阅读(1140) 评论(0) 推荐(0) 编辑