![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
极寒夜枭
这个作者很懒,什么都没留下…
展开
-
用位运算代替取模
当容量为2^n次方时,使用a&(b-1)替代a%b是有效的,而且会有更高的效率 例如: JDK6中的HashMap中的indexFor方法 /** * Returns index for hash code h. */ static int indexFor(int h, int length) { return h & (length-1); } Redis2.4中的代码段: n.size = realsize; n.sizemask =.原创 2020-07-21 16:00:08 · 721 阅读 · 0 评论 -
幂等性以及怎么实现幂等性
概念 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如:前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。等等很多重要的情况,这些逻辑都需要幂等的特性来支持。 实现方案 数据库唯一索引,防止新增脏数据。 token机制,防止重复提交。 token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。 当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求原创 2020-07-19 17:17:42 · 181 阅读 · 0 评论 -
为什么要重写 hashcode 和 equals 方法?
1通过Hash算法来了解HashMap对象的高效性 我们先复习数据结构里的一个知识点:在一个长度为n(假设是10000)的线性表(假设是ArrayList)里,存放着无序的数字;如果我们要找一个指定的数字,就不得不通过从头到尾依次遍历来查找,这样的平均查找次数是n除以2(这里是5000)。 我们再来观察Hash表(这里的Hash表纯粹是数据结构上的概念,和Java无关)。它的平均查找次数接近于1,代价相当小,关键是在Hash表里,存放在其中的数据和它的存储位置是用Hash函数关联的...原创 2020-07-07 17:18:11 · 112 阅读 · 0 评论 -
Java中抽象类和接口的区别
小萌新在学完学完Java的抽象类和接口之后发现有很多相似之处,所以总结一 抽象类就是抽象的类,唉唉唉,我错了、错了。咳咳咳,抽象类其实就是包含着抽象方法的类,那么什么是抽象方法呢,我们都知道,在一个类里面有成员函数和成员变量,成员函数的组成是:访问修饰符+返回值类型+函数名+参数表+函数体 例如 public void fun () {} 缺一不可,抽象函数顾名思义就是函数的抽象,它与函数的关系...转载 2020-04-10 17:41:18 · 96 阅读 · 0 评论