草庐IT

identity_hash

全部标签

java - 京都内阁/伯克利 DB : Hash table size limitations

我很难在我的SSD上存储数亿个16/32字节的键/值对和哈希数组。WithKyotoCabinet:正常工作时,它以70000条记录/秒的速度插入。一旦下降,它就会下降到10-500条记录/秒。使用默认设置,丢弃发生在大约一百万条记录之后。查看文档,这是数组中桶的默认数量,所以这是有道理的。我将这个数字增加到2500万,事实上,在大约2500万条记录之前它工作正常。问题是,一旦我将桶的数量推到3000万或更多,插入率从一开始就下降到10-500条记录/秒。KyotoCabinet没有设计成在创建数据库后增加桶的数量,所以我不能插入超过2500万条记录。1/为什么一旦桶数超过25M,KC

java - 获取 java.rmi.UnmarshalException : unrecognized method hash: method not supported by remote object

我是RMI技术的新手。当我运行rmi客户端程序时,出现异常:java.rmi.UnmarshalException:unrecognizedmethodhash:methodnotsupportedbyremoteobject。我用的是jdk1.5远程方法的参数是序列化对象。这些是服务器代码...这是远程接口(interface)packageinterfacepackage;importjava.rmi.Remote;importjava.rmi.RemoteException;publicinterfaceServerInterfaceextendsRemote{publicvoi

java - identity.logout() 之后出现 ViewExpiredException;在 JBoss 中

在我的AuthenticationFilter重定向到登录页面后,我想注销用户。这就是为什么,我将identity.logout();放在login.xhtml的预渲染方法checkPermission(...)中>.但是,当用户再次登录时,我得到了ViewExpiredException。我的问题是1:如果我不执行identity.logout();,用户将重新登录,因为旧的用户session仍然存在。2:如果我执行identity.logout();,当用户再次登录时我会得到ViewExpiredException。AuthenticationFilter.javapubliccl

java - 使用带有 key 的 ripemd160 在 Java 中模拟 php 函数 hash_hmac 中的字符串哈希

我正在尝试使用ripemd160对Java中的字符串进行哈希处理,以模拟以下php的输出:$string='string';$key='test';hash_hmac('ripemd160',$string,$key);//outputs:37241f2513c60ae4d9b3b8d0d30517445f451fa5尝试1最初我尝试使用以下方法来模拟它...但是我不认为可以使用ripemd160作为getInstance`算法?或者可能是,我只是没有在本地启用它?publicStringsignRequest(Stringuri,Stringsecret){try{byte[]key

java - 为什么HashMap的get()在Java中会同时比较hash值和key?

我在看JDK8中HashMap的实现。在get方法中,我看到下面一行用于查找与给定键匹配的节点。if(e.hash==hash&&((k=e.key)==key||(key!=null&&key.equals(k))))为什么需要将哈希值与key进行比较?为什么上面的行不写成:if(((k=e.key)==key)||(key!=null&&key.equals(k)))有没有解释为什么这样做?谢谢。 最佳答案 引起您困惑的似乎是两件事:1。比较哈希值(通常非常)比直接比较键快。2。在==运算符中,如果第一个条件为假,则不会检查第二

Java Weak Hash Map - 需要根据值的弱点而不是键删除条目

因此,JavaWeakHashMap允许创建一个映射,如果其键变弱,其条目将被删除。但是,本地图中的值变弱时,如何创建一个条目被删除的map?我想使用map的原因是作为一个全局哈希表,它根据对象的ID跟踪对象。ID--->ObjectAddressKey--->Value(其中ID是一个文本字符串)我希望在对象地址变弱时删除键值对,而不是指向它们的字符串。有人对此有任何想法吗? 最佳答案 支持这样的map,例如Guava:Mapm=newMapMaker().weakValues().makeMap();

java - 谁能解释一下 java 是如何设计 HashMap 的 hash() 函数的?

这个问题在这里已经有了答案:ExplanationofHashMap#hash(int)method(2个答案)关闭7年前。看了JDK的源码,觉得HashMap的hash()函数很好玩。它的源代码是这样的:staticinthash(inth){//ThisfunctionensuresthathashCodesthatdifferonlyby//constantmultiplesateachbitpositionhaveabounded//numberofcollisions(approximately8atdefaultloadfactor).h^=(h>>>20)^(h>>>12

java - Squeak 跨平台运行 "bit-identically"是什么意思,而 Java 却没有?

艾伦·凯pointsout“与Java不同,[Squeak]在每台机器上的运行都完全相同——这是我们20年前发明的”。wikipediapage还提到了这一点:Squeakisavailableformanyplatforms,andprogramsproducedononeplatformrunbit-identicalonallotherplatforms.由于具有不同指令集的机器显然无法在native运行位相同的程序,所以当有人说Squeak可以在不同的机器上以Java不能的方式运行位相同的程序时,这意味着什么?我的印象是编译后的Java类在任何JVM上的任何机器上都以相同的方式

Hash值是怎么计算的,如何计算hashcode?

hash算法是怎么样的?1、哈希算法(Hash算法,Hash算式,散列算法,消息摘要算法)将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。2、hash算法是:一种特殊的函数,不论输入多长的一串字符,只要通过这个函数都可以得到一个固定长度的输出值,这就好像身份证号码一样,永远都是十八位而且全国唯一。哈希算法的输出值就叫做哈希值。3、哈希算法(HashAlgorithm),又称散列算法,是一种从任意数据中提取小的数字的方法。散列算法就是一种以较短的信息来保持数据唯一性的标志,这种标志与数据的每一个字节都相关,而且难以找到

java - 为什么 Function.identity() 会破坏类型具体化,而 t -> t 却不会?

在Java8lambdas,Function.identity()ort->t找到答案似乎暗示Function.identity()几乎总是等同于t->t。但是,在下面看到的测试用例中,将t->t替换为Function.identity()会导致编译器错误。这是为什么?publicclassTestcase{publicstaticCollectorcomparatorOrdering(FunctionkeyMapper,FunctionvalueMapper,ComparatorkeyComparator,ComparatorvalueComparator){returnnull;}