如何在Java中的long的特定位置设置/取消位?
例如,
long l = 0b001100L ; // bit representation
Run Code Online (Sandbox Code Playgroud)
我想在位置2处设置位并在位置3处取消设置位,因此相应的长度将是,
long l = 0b001010L ; // bit representation
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我怎么做?
任何人都可以通过建议将C#代码转换为Java代码的转换器的名称来帮助我.实际上,我有一个用C#代码编写的工具,我正在尝试修改它.由于我不知道C#和.NET框架,我自己很难转换大代码.我从一些网络信息中发现,存在一些可以将C#转换为Java的工具(可能不正确,但他们可以).任何人都可以通过建议这些工具的名称来帮助我.
我有超过1亿个键值对(一个键可以有多个值).我正在使用Tokyo Cabinet的BDB(B + Tree DB),其键值为32位字节数组.
是否可以在东京内阁设定可以使用多少内存(下限和上限)?实际上,我有8GB内存,但它似乎无法利用大内存.
另一点是,我想知道如何设置,
tokyoCabinet.tune()tokyoCabinet.optimize()tokyoCabinet.setxmsiz()tokyoCabinet.setcache()这些参数因此我可以得到我的情况的最大调整.提前致谢.任何想法对我都有帮助.
我在一家小公司工作,在那里我建立一些银行软件.现在,我必须构建一些数据结构,如:
Array [Int-Max] [2] // Large 2D array
Run Code Online (Sandbox Code Playgroud)
将其保存到磁盘并在第二天加载它以备将来工作.
现在,因为我只知道Java(和一点点C),他们总是坚持使用C++或C.根据他们的建议:
他们已经看到Java中的Array [Int-Max] [2]占用的内存几乎是C的1.5倍,而C++占用的内存占用量比Java大一些.
C和C++可以处理任意大的文件,而Java则无法处理.
根据他们的建议,随着数据库/数据结构变得庞大,Java变得不可行.由于我们必须处理如此大的数据库/数据结构,因此C/C++总是更受欢迎.
现在我的问题是,
为什么C或C++总是优于Java上的大型数据库/数据结构?因为,C可能是,但C++也是一个OOP.那么,它如何获得优于Java的优势?
我是否应继续使用Java或他们的建议(切换到C++)将来会对大型数据库/数据结构环境有所帮助?有什么建议吗?
对不起,我对所有这些知识知之甚少,刚开始从事一个项目,所以真的很困惑.因为到现在为止我刚建了一些学校项目,对相对较大的项目一无所知.
是否有Go函数在每次运行中返回真正的伪随机数?我的意思是,考虑下面的代码,
package main
import (
"fmt"
"rand"
)
func main() {
fmt.Println(rand.Int31n(100))
}
Run Code Online (Sandbox Code Playgroud)
每次执行此代码时,我都会得到相同的输出.有没有一种方法可以在每次调用时返回不同的随机结果?
如何将String转换为Object?实际上,我想设置
clientSession.setAttribute("username", "abc")
Run Code Online (Sandbox Code Playgroud)
但是,它表明
java.lang.String given, required java.lang.Object.
Run Code Online (Sandbox Code Playgroud) 在我的Java代码中,我使用的是Guava的Multimap(com.google.common.collect.Multimap):
Multimap<Integer, Integer> Index = HashMultimap.create()
Run Code Online (Sandbox Code Playgroud)
这里,Multimap键是URL的一部分,值是URL的另一部分(转换为整数).现在,我分配了我的JVM 2560 Mb(2.5 GB)堆空间(通过使用Xmx和Xms).但是,它只能存储9百万这样的(键,值)整数对(大约1000万).但是,理论上(根据占用的内存int
)它应该存储更多.
有谁能够帮我,
Multimap
使用大量内存?我检查了我的代码,没有插入对Multimap
,它只使用1/2 MB的内存.有没有其他方法或自制的解决方案来解决这个内存问题?意味着,有没有办法减少那些对象开销,因为我只想存储int-int?用其他语言?或者解决我遇到的问题的任何其他解决方案(自制首选),意味着基于数据库或类似的解决方案.
我存储了1.11亿个键值对(一个键可以有多个值 - 最大值为2/3),其键为50位整数,值为32位(最大值)整数.现在,我的要求是:
- 快速插入(键,值)对[允许重复]
- 基于密钥快速检索值/值.
这里给出了一个很好的解决方案,基于MultiMap.但是,我想在主内存中存储更多的键值对,没有/小的性能损失.我从网络文章中研究过B + Tree,R + Tree,B Tree,Compact Multimap等可以很好地解决这个问题.有谁能够帮我:
是否有任何Java库可以满足我所有这些需求(上面提到/其他ds也可以接受.没有问题)?实际上,我想要一个高效的java库数据结构来存储/检索键值/值对,这需要占用更少的内存,并且必须内置在内存中.
注意:我曾尝试使用路易斯·沃瑟曼,京都/东京内阁等提到的HashMultiMap(Guava与trove进行一些修改)等.我的经验对于磁盘烘焙解决方案并不好.所以请避免:).另一点是,为了选择库/ ds,一个重点是:密钥是50位(所以如果我们分配64位),14位将丢失,值为32位Int(最大) - 大多数是10-12-14位.所以,我们也可以节省空间.
我有以下Java代码,
int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
Run Code Online (Sandbox Code Playgroud)
但是,输出是错误的.任何人都可以帮助我,为什么这不是真的?
我有一个int和float数组,每个长度为2.2亿(固定).现在,我想将这些数组存储/上传到内存和磁盘.目前,我正在使用Java NIO的FileChannel和MappedByteBuffer来解决这个问题.它工作正常,但是将数组存储/上传到内存到磁盘需要大约5秒钟(挂钟时间).现在,我想让它更快.
在这里,我应该提到大多数数组元素都是0(接近52%).
喜欢:
int arr1 [] = { 0 , 0 , 6 , 7 , 1, 0 , 0 ...}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我,有没有很好的方法来提高速度,不存储或加载那些0.这可以通过使用Arrays.fill(array,0)来补偿.