草庐IT

long-polling

全部标签

java - 按位异或 java long

我在Ubuntu12.04上使用OracleJava7.51,并尝试这样做longa=0x0000000080000001^0x4065DE839A6F89EEL;System.out.println("result"+Long.toHexString(a));Output:resultbf9a217c1a6f89ef但我期望结果是4065de831a6f89ef,因为^运算符在Java中是按位异或。我读错了Java规范的哪一部分? 最佳答案 您需要在第一个整数文字的末尾添加一个L:longa=0x0000000080000001L

java - 为什么我不能在 Java 中创建具有 'long' 类型的 HashMap?

有什么理由不允许以下内容吗?HashMapx=newHashMap(); 最佳答案 您正在使用基元重写为HashMapx=newHashMap() 关于java-为什么我不能在Java中创建具有'long'类型的HashMap?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/27211582/

java - 如何从三个 long 生成哈希码

我有一个以坐标作为键的HashMap。Coordinates有3个长整型,分别代表x、y和z坐标。(坐标是并且需要是自定义类,坐标需要是longs)。现在我希望能够访问例如字段[5,10,4]通过做:hashMap.get(newCoordinate(5,10,4)).我已经实现了equals方法,但这还不够,因为显然我还需要为hashCode提供一个实现。所以我的问题是如何从三个long生成唯一的hashCode?。附加:使用来自外部库的哈希生成器不是选项。 最佳答案 JoshuaBloch在chapter3中告诉您如何为Coor

java - java priorityQueue poll()方法的大O是什么

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭9年前。Improvethisquestion我检查了http://en.wikipedia.org/wiki/Priority_queue它说Naive实现是o(n)。如果我使用二进制搜索,它将是log(n)。但我不确定它是否用于Java。以及如何在priorityQueue上使用二进制搜索?谢谢。

java - 生成 long 类型的 UUID

请给我示例代码,以在不使用时间戳的情况下在java中生成long类型的UUID。谢谢 最佳答案 真正的UUID是128位。一个long是64位。这不仅仅是迂腐。UUID代表通用唯一标识符。establishedUUIDschemes的“普遍唯一性”基于:对MAC地址和时间戳进行编码,对DNS名称和时间戳的哈希进行编码,或者使用一个122位的随机数......它足够大,碰撞的概率非常非常小。对于64位,根本没有足够的位来实现“通用唯一性”。例如,生日悖论意味着如果我们有许多计算机生成随机的64位数字,则潜在可检测碰撞的概率将大到足以引

java - java中unsigned long的等价物是什么

我为我的项目编写了以下三个函数:WORDshuffling(WORDx){//WORD-4bytes-32bits//giveninput-a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15-b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15//outputrequired-a0,b0,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7-a8,b8,a9,b9,a10,b10,a11,b11,a12,b12,a13,b13,a14,b14,a1

java - 为什么 Math.pow(long, (1/3)) 总是返回 1?

如果是power问题,怎么写才正确? 最佳答案 这是因为1/3是整数除法,它的计算结果为0。您实际上是在提高到0次方,它总是产生1。请改用1.0/3.0。 关于java-为什么Math.pow(long,(1/3))总是返回1?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5066104/

java - 在数据库中,为什么我们不能只使用 "Long"整数作为日期(自纪元以来的毫秒数)

我想在数据库中使用Long数据类型来表示日期(从纪元开始以毫秒为单位)。原因是使用jdbc驱动程序和Oracle引擎存储日期非常复杂。如果您在preparedStatement中提交了错误的数据类型,它会将时间戳转换为日期(反之亦然),从而破坏您的索引,从而在最坏的情况下导致全表扫描。细节记不清了,但我知道有细节要记住。我不想记住细节。似乎只存储尽可能长的日期(自纪元以来的毫秒数)在这里就可以正常工作,我没有什么可记住的。请注意,我觉得时区只是表象。它不应该首先存储。大多数公司都有只使用UTC的政策,但再次强调,这只是需要了解的更多信息。让我们只存储自纪元以来的毫秒数,并在显示时向用户

java - 为什么我对这个长二进制数使用 Long.parseLong(String s, int radix) 会冒犯 Java?

我有以下代码:为什么Java认为这不是有效的long。@TestpublicvoidtestOffendingBinaryString(){StringoffendingString="1000000000000000000010101000000000000000000000000000000000000000";assertEquals(64,offendingString.length());Long.parseLong(offendingString,2);} 最佳答案 因为它超出了long的有效值范围。字符串:"-1111

java - 为什么 CountDownLatch.getCount() 返回一个 long 而不是一个 int?

我查看了代码,一切都是int--传递给CountDownLatch构造函数的参数是int,Sync中的变量是int,Sync.getCount()的返回类型是int。但是CountDownLatch.getCount()返回一个长?想知道为什么。 最佳答案 除非设计该API的人回答,否则我不知道您是否会找到该问题的充分答案,但它确实说它用于“调试和测试”。publiclonggetCount(){...}//justfordebuggingandtesting 关于java-为什么Cou