- 浏览: 36153 次
- 性别:
- 来自: 威海
最新评论
-
javagaorui5944:
可以这么理解,用空间去换了时间。
跳表SkipList的原理和实现 -
YorkTsai:
楼主,可以详细解释一下randomLevel()方法所采用的公 ...
跳表SkipList的原理和实现
文章列表
分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。为了实现分布式事务,需要使用下面将介绍的两阶段提交协议。
阶段一:开始向事务涉及到的全部资源发送提交前信息。此时,事务涉及到的资源还有最后一次机会来异常结束事务。如果任意一个资源决定异常结束事务,则整个事务取消,不会进行资源的更新。否则,事务将正常执行,除非发生灾难性的失败。为了防止会发生灾难性的失败,所有资源的更新都会写入到日志中。这些日志是永久性的,因此,这些日志会幸免遇难并且在失败之后可以重新对所有资源进行更新。
阶段二:只在阶段一没有异常结束的时候才会发生。此时, ...
跳表SkipList的原理和实现
- 博客分类:
- 修行笔记
最近看了一种数据结构叫做skipList,redis和levelDB都是用了它。Skip List是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题,查找特定值的时间复杂度为O(logn),他是一种可以代替平衡树的数据结构 ...
一致性哈希算法在1997年被提出,英文名叫constant hahsing,目前这种算法被广泛的应用到了cache系统中。
在cache系统中如何保证在添加或者较少节点服务器时尽可能减少数据的移动是一大挑战,这要求负责路由的hash算法具有很高的单调性。Constant hashing就是满足需求的算法之一。
一般情况下,hash算法会将值映射到32位的数值空间,我们可以将这个空间想象成一个首尾相接的圆环
布隆过滤器——Bloom Filter
- 博客分类:
- 修行笔记
谷歌的数学之美系列曾经提到过一种数据结构叫做bloomfilter,翻译成中文就是布隆过滤,文中使用布隆过滤器来过滤黑名单。后来我在毕业设计中也用到了它来过滤重复的URL,避免网络爬虫重复抓取。再后来在单位又一次的用到了bloomfilter来过滤用户的重复访问。随着海量数据时代的到来,布隆过滤器应用的场景越来越多。
布隆过滤器(Bloom Filter)是1970年由Burton Howard Bloom提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率 ...
J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑)。
首先声明偶也不是什么高手,以下总结都是自己的体会。不对之处请您多指教。
PO:persistant object持久对象最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
BO:business object业务对象主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的 ...
摘要
本文介绍 Java 平台支持增补字符的方式。增补字符是 Unicode 标准中代码点超出 U+FFFF 的字符,因此它们无法在 Java 编程语言中描述为单个的 16 位实体(例如 char 数据类型)。这些字符一般极少用,但是,有些会在诸如中文或日文人名中用到,因此,在东亚国家,政府应用程序通常会要求支持这些字符。
Java 平台目前正在改进,以便支持对增补字符的处理,这种改进对现有的应用程序影响微乎其微。新的低层 API 在需要时能够使用单个的字符运行。不过,大多数文本处理 API 均使用字符序列,例如 String 类或字符数组。现在,这些均解释为 UTF-16 序列,而且 ...
在《你可能不知道的Java基础知识(一)》中,我提到使用浮点运算要慎重,感觉说的不够透彻,其实float和double类型主要是为科学和工程计算而设计的。他们执行的是二进制浮点运算,由于二进制的局限性,有时候无法得到准确的结果。
例如:System.out.println(2.0-1.1)将输出0.8999999999999999,而不是0.9,当然这在科学计算中无关紧要,通过四舍五入就可以轻松解决问题,但是在禁止出现舍入误差的运算中(比如金融计算)就不适用了。
在二进制中无法精确地表示10的任何负数次方值,比如0.1,这和十进制中无法精确表示1/3一个道理, ...
鄙人在校大学生一枚,学习Java两年有余,深感Java之简单易用和博大精深。遂利用闲暇之余整理下自己认为很容易被忽视的Java基础知识和使用习惯,希望对大家有用。
1、JavaScript和Java的关系
很多初学者认为JavaScript是Java的简易版本(鄙人初学也这么认为,汗一个!),其实两者除了语法有点相似以外没有任何关系。 JavaScript是Netscape发明的,是一种在网页中使用的脚本语言,在网页应用中抢了Java Applet的饭碗,所以两者似乎还有些"恩怨",不过鄙人对于JavaScript还是无比崇敬的,它那灵活的用法、面向对象的彻底一直令我陶醉 ...