当前位置: 首页 > news >正文

南阳网站公司sae wordpress 安装插件

南阳网站公司,sae wordpress 安装插件,app下载安装官方版,wordpress 私活一、hash算法哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值#xff0c;这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母#xff0c;随后的哈希都将产生不同的值。要找到散列为同…一、hash算法哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入在计算上是不可能的所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。二、对象hash总结 Integer、Byte、Short、Character都是转换为int类型作为hashcode Boolean true值hashcode为1231false值hashcode为1237 Long  取高32位和低32位与值转成int类型作为hashcode Double  将64bit值转成long类型然后按照Long类型进行获取hashcode Float  将32bit值转成int类型检查int值是否来自NAN值转换的若是hashcode为0x7fc00000否则为该转换值。 String 将字符串里面的字符以31进制求和既hashhash*31value[i] Object 以内存首字节的地址进行计算hash值 HashMap 将所有Entry的hashcode相加组成HashMap的hashcode Hashtable EntrySet长度0或者加载因子小于0时hashcode为0否则将所有key的hashcode相加组成HashMap的hashcode三、jdk的hash算法实现 1Intergerprivate final int value; Overridepublic int hashCode() {return Integer.hashCode(value);} public static int hashCode(int value) {return value;}Integer的hash算法就是直接获取它的数值。int整数范围很大分散广冲突小。2Shortprivate final short value;Overridepublic int hashCode() {return Short.hashCode(value);}public static int hashCode(short value) {return (int)value;}3Byteprivate final byte value;Overridepublic int hashCode() {return Byte.hashCode(value);}public static int hashCode(byte value) {return (int)value;}4Longprivate final long value;Overridepublic int hashCode() {return Long.hashCode(value);}public static int hashCode(long value) {return (int)(value ^ (value 32));}long类型作为索引范围太大需要转为int类型。这里简单的获取低32位容易导致散列不均因为高位部分没有被利用。所以这里采用逻辑右移32位让高32位和低32位进行XOR操作导致高位低位都能被利用到5Doubleprivate final double value;Overridepublic int hashCode() {return Double.hashCode(value);}public static int hashCode(double value) {long bits doubleToLongBits(value);return (int)(bits ^ (bits 32));}由于double不能当成索引所以需要转换成整数 由于double数据类型底层采用64位bit码表示采用IEEE浮点标准编码。如果将它使用8字节整数编码方式就能获取一个long类型的数字 long类型作为索引范围太大需要转为int类型。这里简单的获取低32位容易导致散列不均因为高位部分没有被利用。所以这里采用逻辑右移32位让高32位和低32位进行XOR操作导致高位低位都能被利用到 最后得到的数字强转int只保留已经被充分打乱的低32位6Floatprivate final float value;Overridepublic int hashCode() {return Float.hashCode(value);}public static int hashCode(float value) {return floatToIntBits(value);}public static int floatToIntBits(float value) {int result floatToRawIntBits(value);// Check for NaN based on values of bit fields, maximum// exponent and nonzero significand.if ( ((result FloatConsts.EXP_BIT_MASK) FloatConsts.EXP_BIT_MASK) (result FloatConsts.SIGNIF_BIT_MASK) ! 0)result 0x7fc00000;return result;}public static native int floatToRawIntBits(float value);public class FloatConsts {public static final int EXP_BIT_MASK 2139095040;public static final int SIGNIF_BIT_MASK 8388607;//... }7Booleanprivate final boolean value;Overridepublic int hashCode() {return Boolean.hashCode(value);}public static int hashCode(boolean value) {return value ? 1231 : 1237;}采用两个质数作为true或false的索引。这两个质数足够大用来作为索引时出现碰撞的可能性低。8Characterprivate final char value;Overridepublic int hashCode() {return Character.hashCode(value);}public static int hashCode(char value) {return (int)value;}9Stringprivate final char value[];public int hashCode() {int h hash;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;}采用质数31作为基数逐位加权打乱整个字符的权重和排列位置使得散列效果更好。10Objectpublic native int hashCode();11自定义对象 public class NodeT {private T data;private NodeT next null;Overridepublic int hashCode() {int hash 3;hash 97 * hash Objects.hashCode(this.data);hash 97 * hash Objects.hashCode(this.next);return hash;} }public final class Objects {public static int hashCode(Object o) {return o ! null ? o.hashCode() : 0;}//... }12HashMapstatic final int hash(Object key) {int h;return (key null) ? 0 : (h key.hashCode()) ^ (h 16);}public int hashCode() {int h 0;IteratorEntryK,V i entrySet().iterator();while (i.hasNext())h i.next().hashCode();return h;}13Hashtablepublic synchronized V put(K key, V value) {// Make sure the value is not nullif (value null) {throw new NullPointerException();}// Makes sure the key is not already in the hashtable.Entry?,? tab[] table;int hash key.hashCode();int index (hash 0x7FFFFFFF) % tab.length;SuppressWarnings(unchecked)EntryK,V entry (EntryK,V)tab[index];for(; entry ! null ; entry entry.next) {if ((entry.hash hash) entry.key.equals(key)) {V old entry.value;entry.value value;return old;}}addEntry(hash, key, value, index);return null;}public synchronized int hashCode() {int h 0;if (count 0 || loadFactor 0)return h; // Returns zero loadFactor -loadFactor; // Mark hashCode computation in progressEntry?,?[] tab table;for (Entry?,? entry : tab) {while (entry ! null) {h entry.hashCode();entry entry.next;}}loadFactor -loadFactor; // Mark hashCode computation completereturn h;}
http://wiki.neutronadmin.com/news/304496/

相关文章:

  • wordpress文章中图片并排哈尔滨seo
  • 推广公司合同seo的基本步骤四个
  • 网站建设一般要提供什么内容下载类的wordpress模板
  • 常州企业建站系统网站怎么建
  • 做网站游戏网站违法wordpress 猪八戒
  • 重庆高端品牌网站建设wordpress icp备案
  • 友链网站汕头房产网
  • 怎样在阿里云做网站学院网站建设项目概述
  • 公司网站的留言板怎么做广告设计与制作专业属于什么大类
  • 做织梦网站的心得体会免费库存管理软件推荐
  • 网站制作协议书球球cdk怎么做网站
  • 常州有哪些做阿里巴巴网站的长春市城乡建设部网站
  • 网站建设通报莆田网站设计
  • 网站建设科技公司网站中文域名到期有没有影响
  • 域名注册好如何做网站单位网站和新媒体建设制度
  • 搭建网站的必须条件搜索引擎营销包括
  • 可信网站代码网址多少钱一个
  • 人事代理网站建设自建外贸网站
  • 做网站apache如何北京最新消息今天新增病例
  • 手游传奇开服网站赣南脐橙网络营销策划书
  • 网站开发的数据库技术南充移动网站建设
  • 网站平台建设多少钱江门seo
  • 南通企业网站排名邢台网红
  • 企业主页制作东营网站seo服务
  • 婚恋网站需求分析湖州建设网站
  • 网站建设word文档网站建设和备案
  • 网站程序语言那个好wordpress禁用xmlrpc
  • 做国外网站需要多少钱东莞网页制作招聘网
  • 公司开发个网站如何做律师网站
  • 泰安个人代做网站wordpress 页面分栏