先看看string的默认hash方法,代码如下

/**
     * Returns a hash code for this string. The hash code for a
     * {@code String} object is computed as
     * <blockquote><pre>
     * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
     * </pre></blockquote>
     * using {@code int} arithmetic, where {@code s[i]} is the
     * <i>i</i>th character of the string, {@code n} is the length of
     * the string, and {@code ^} indicates exponentiation.
     * (The hash value of the empty string is zero.)
     *
     * @return  a hash code value for this object.
     */
    public int hashCode() {
        int h = hash;//default 0
        if (h == 0 && value.length > 0) {
            char val[] = value;
 
            for (int i = 0; i < value.length; i++) {
                h = 31 * h + val[i];
            }
            hash = h;
        }
        return h;
    }
此hash算法实现上是循环原哈希值×31再加下一个Char的值,Eclipse的自动代码生成的hashCode()函数也是类似的,循环原哈希值×31,再加下一个属性的hashCode()值。代码如下:

@Override
    public int hashCode() {
        int result = idNo != null ? idNo.hashCode() : 0;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (userId != null ? userId.hashCode() : 0);
        result = 31 * result + (channelFlag != null ? channelFlag.hashCode() : 0);
        return result;
    }
此处不太明白下一个char的值,那么我们测试一下,看看

public class Test {
 
 
    public static void  main(String[] args){
 
        char[] chars={'我','的'};
        int i=chars[0];
        int j=chars[1];
        
        System.out.println(i);
        System.out.print(j);
 
    }
 
}
输出结果如下:

25105

30340

public static void  main(String[] args){
 
  
        char[] chars={'2','的'};
        int i=chars[0]-'0';
        int j=chars[1];
 
        System.out.println(i);
        System.out.print(j);
 
    }
输出结果如下:

2

30340

第一个结果的int是char的ascii值,第二个例子,我们期待如果不输出ascii值,怎么处理,其具体原理稍后研究。

主要采用horner法则,解释如下:

hash算法MurmurHash相关推荐

  1. MurmurHash算法:高运算性能,低碰撞率的hash算法

    MurmurHash算法:高运算性能,低碰撞率,由Austin Appleby创建于2008年,现已应用到Hadoop.libstdc++.nginx.libmemcached等开源系统.2011年A ...

  2. hash函数MurmurHash

    一.介绍 MurmurHash算法:高运算性能,低碰撞率,由Austin Appleby创建于2008年,现已应用到Hadoop.libstdc++.nginx.libmemcached等开源系统.2 ...

  3. Redis分片算法☞MurmurHash

    Q:你们redis怎么做的分布式 A:我们公司redis用的murmurHash做的分片: Q:讲讲murmurHash的原理呗 A:额--这块没有深入了解过(真TM掉分) 哈希算法简单来说就是将一个 ...

  4. Neo中hash算法,加密算法使用介绍

    作者:沈寅 原文链接:https://www.jianshu.com/p/3fef5d95bf9f 区块链是基于加密算法,共识算法,p2p网络和经济激励的一个系统,加密算法在里面起到了非常关键的作用, ...

  5. java 一致性hash算法 均衡分发_负载均衡-基础-一致性哈希算法及java实现

    1 /** 2 * 一致性hash 的java 实现3 *@authorluoqiang4 * @data 2016/11/085 */ 6 public classConsistencyHash { ...

  6. 一致性 hash 算法( consistent hashing )

    原文地址:http://blog.csdn.net/sparkliang/article/details/5279393 consistent hashing 算法早在 1997 年就在论文 Cons ...

  7. 区块链笔记-Hash算法

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链笔记-Hash算法 区块链技术是一系列技术的结合,建立新的技术架构,hash算法是很重要的一块,如果理解不当的地方 ...

  8. 区块链概念:Hash 算法

    链客,专为开发者而生,有问必答! 此文章来自链客区块链技术问答社区,未经允许拒绝转载. 区块链概念1:Hash 算法 作用在学习哈希算法前,我们需要知道哈希在区块链的作用哈希算法的作用如下:区块链通过 ...

  9. 一致性 Hash 算法的实际应用

    前言 记得一年前分享过一篇<一致性 Hash 算法分析>,当时只是分析了这个算法的实现原理.解决了什么问题等. 但没有实际实现一个这样的算法,毕竟要加深印象还得自己撸一遍,于是本次就当前的 ...

最新文章

  1. C++中static关键字用法
  2. linux 飞行模拟,为推进2020款微软飞行模拟器开发:微软启动Flight Simulator X Beta测试...
  3. DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  4. 判断checkbox是否被选中,判定选中的个数!
  5. 为人处事的一些小句子。
  6. 一些常被你忽略的CSS小知识
  7. openfeign 负载均衡调用服务
  8. 使用html() undefined_SweetAlert2使用教程
  9. PostgreSQL的中文拼音排序
  10. EDUCoder编程练习题解(一维数组和二维数组)
  11. cmd 根据计算机名查ip地址_教你怎么查看本机IP地址
  12. SQL Server 2008 R2 是免费版下载地址
  13. ftp 报错 550 Failed to open file
  14. 必要的系统组件未能正常运行,请修复Adobe Flash Player
  15. iPhone 13发布前迎来坏消息,摩托车会损坏手机相机?
  16. Mosquitto设置用户名密码
  17. 在小公司天天人肉取数,职业规划怎么办?
  18. 以太坊开发测试(6) 运行《区块链技术进阶与实战》Score 电子积分系统
  19. 第二次作业——Service、Listview与ACtivity参数传递
  20. 电脑蓝屏出现一堆英文的解决方法

热门文章

  1. 微信学习小组 打卡群 云自习
  2. String和int、long、double等基本数据类型的转换
  3. RHCE(6)tuend\stratis\vdo总结和课堂案例
  4. 操作系统-----进程的同步
  5. 《App Store 审核指南》更新条目一览
  6. darken函数是怎么计算的呢?
  7. Redis的5种基本数据结构
  8. 安装GenyMotion模拟器(Mac)
  9. mac电脑安装Android studio
  10. 应用密码学与网络安全上机题通关秘籍