- 博客(7)
- 收藏
- 关注
原创 用位运算代替取模
当容量为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
816
原创 幂等性以及怎么实现幂等性
概念 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如:前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。等等很多重要的情况,这些逻辑都需要幂等的特性来支持。实现方案数据库唯一索引,防止新增脏数据。 token机制,防止重复提交。 token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。 当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求
2020-07-19 17:17:42
255
原创 为什么要重写 hashcode 和 equals 方法?
1通过Hash算法来了解HashMap对象的高效性 我们先复习数据结构里的一个知识点:在一个长度为n(假设是10000)的线性表(假设是ArrayList)里,存放着无序的数字;如果我们要找一个指定的数字,就不得不通过从头到尾依次遍历来查找,这样的平均查找次数是n除以2(这里是5000)。我们再来观察Hash表(这里的Hash表纯粹是数据结构上的概念,和Java无关)。它的平均查找次数接近于1,代价相当小,关键是在Hash表里,存放在其中的数据和它的存储位置是用Hash函数关联的...
2020-07-07 17:18:11
172
转载 Java中抽象类和接口的区别
小萌新在学完学完Java的抽象类和接口之后发现有很多相似之处,所以总结一抽象类就是抽象的类,唉唉唉,我错了、错了。咳咳咳,抽象类其实就是包含着抽象方法的类,那么什么是抽象方法呢,我们都知道,在一个类里面有成员函数和成员变量,成员函数的组成是:访问修饰符+返回值类型+函数名+参数表+函数体 例如 public void fun () {} 缺一不可,抽象函数顾名思义就是函数的抽象,它与函数的关系...
2020-04-10 17:41:18
149
翻译 9Palindrome Number(leetcode)
如果将数字反转将会遇到数据溢出的问题,通常解法不再列出,真正的大神不写注释,,,我等渣渣看懂大神的代码然后解释一下:public boolean isPalindrome(int x) { if (x0 || (x!=0 && x%10==0)) return false;//排除小于0的情况和末尾是0的情况 int rev = 0; while (x>rev)
2018-01-20 17:04:59
216
原创 罗马数字的计算方法和利用python实现其转换(1)
罗马数字总共有7个:I(1),v(5),X(10)、L(50)、C(100)、D(500)和M(1000)运算规则:重复数次:一个罗马数字重复几次,就表示这个数的几倍。例如III表示的就是3右加左减:在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。例如vIII表示的就是8在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。例如IV表示的就是4左减的数字有限制,仅限于I、X、
2018-01-18 16:19:27
1340
原创 unity3d fpscontrol中mouselook脚本的解释
using System;using UnityEngine;using UnityStandardAssets.CrossPlatformInput;namespace UnityStandardAssets.Characters.FirstPerson{ [Serializable] public class MouseLook { publi
2016-12-20 22:54:18
553
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅