小编jen*_*ens的帖子

如何直接初始化HashMap(以字面方式)?

有没有像这样初始化Java HashMap的方法?:

Map<String,String> test = 
    new HashMap<String, String>{"test":"test","test":"test"};
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法?我没有发现任何有关此事的内容.这可能吗?我正在寻找最短/最快的方法,将一些"最终/静态"值放在一个永不改变的地图中,并在创建Map时提前知道.

java collections dictionary initialization

990
推荐指数
9
解决办法
118万
查看次数

如何将两个long转换为字节数组=如何将UUID转换为字节数组?

我正在使用Javas UUID并需要将UUID转换为字节数组.奇怪的是,UUID类没有提供"toBytes()"方法.

我已经发现了两种方法:

UUID.getMostSignificantBits()
and
UUID.getLeasSignificantBits()
Run Code Online (Sandbox Code Playgroud)

但是如何将其转换为字节数组呢?结果应该是带有这些两个值的byte [].我不知何故需要做Bitshifting但是,怎么样?

更新:

我发现:

 ByteBuffer byteBuffer = MappedByteBuffer.allocate(2);
 byteBuffer.putLong(uuid.getMostSignificantBits());
 byteBuffer.putLong(uuid.getLeastSignificantBits());
Run Code Online (Sandbox Code Playgroud)

这种方法是否正确?

还有其他方法(用于学习目的)吗?

非常感谢!!延

java arrays uuid long-integer

12
推荐指数
2
解决办法
5352
查看次数

GWT(Client)=如何将Object转换为JSON并发送到Server?

我知道GWT有一个很好的RPC支持.但出于各种目的,我需要自己构建:

1.)如何转换Bean对象(在客户端)像;

class MyPerson {

String name;
String getName();
void setName(String name);
//..    
}
Run Code Online (Sandbox Code Playgroud)

将GWT转换为JSON字符串?(理想情况下,只使用来自GWT/Google正式提供的库).

2.)其次,如何使用任何GWT Client Logik将此生成的JSON字符串从客户端发送到任何服务器.(理想情况下,只使用来自GWT/Google正式提供的库).

我搜索了很多,但这些示例从未显示如何发送数据,只是为了接收JSON数据.

非常感谢你!!!延

java gwt

8
推荐指数
2
解决办法
1万
查看次数

Bloomfilter和Cassandra =为什么使用以及为什么要多次使用?

我读了这个:http: //spyced.blogspot.com/2009/01/all-you-ever-wanted-to-know-about.html

我的问题:

1.)是否正确,Cassandra只使用布隆过滤器,找出最有可能包含密钥的SST(排序字符串表)?由于可能存在多个SST并且Cassandra不知道哪个SST可能是密钥?因此,为了加速查看所有SST,使用bloomfilters.它是否正确?(我想了解卡桑德拉是如何工作的......)

2.)为什么(如上面的链接中所解释)键经过几次哈希?是否正确需要多次使用不同的Hash函数进行哈希处理才能获得更好的"随机分布"位?如果这是错误的,为什么需要多次对密钥进行哈希处理?这会耗费CPU周期吗?如果我有几个Hash函数的输出,那么对结果做了什么,它们是ANDed还是XORded.这有什么不同吗?

3.)使用MD5与SHA1(根据文章是随机分布的)相比,"使用Bloomfilter来衡量积极因素"的差异有多大?为什么MD5不是随机分布的?

非常感谢!!延

hash bloom-filter cassandra

7
推荐指数
1
解决办法
5018
查看次数

Cassandra =内存/编码 - 密钥的足迹(哈希/字节[] =>十六进制=> UTF16 =>字节[])

我试图理解使用MD5 Hash作为Cassandra Key在"内存/存储消耗"方面的含义:

  1. 我的内容的MD5哈希(在Java中)= byte []是16个字节长.(对于通用md5,16个字节来自维基百科,如果java实现也返回16个字节,我不是真的)
  2. 十六进制编码此值,以便能够以人类可读的格式打印=> 1byte变为2hex值
  3. 我必须将每个十六进制值表示为java => result ="两个字符串字符值"中的"字符"(例如,"FF"是长度/大小= 2的字符串.)
  4. Java使用UTF-16 =>所以每个"字符串字符"都用两个字节编码."FF"需要2x2字节?
  5. 结论=>字节格式的MD5 Hash是16个字节,但表示为java hex utf16字符串消耗16x2x2 = 64Bytes(在内存中)!?!?它是否正确?

Cassandra的存储消耗是多少,将其用作行键?

如果我直接使用Hash函数中的字节数组,我会假设它在Cassandra中消耗16个字节?

但是,如果我使用十六进制字符串表示(如上所述),cassandra可以将其"压缩"为16个字节,还是在cassandra中也需要64字节?我假设Cassandra有64个字节,这是正确的吗?

你用的是什么键?你是直接使用哈希函数的outpout还是首先编码为十六进制字符串然后使用字符串?(在MySQL中我总是,每当我使用哈希键时,我都使用它的十六进制字符串表示...所以它在MySQL工具和整个应用程序中可以直接读取.但我现在意识到它浪费了存储? ?)

也许我的想法是完全错误的,那么解释我错在哪里会很友好.

非常多!延

java memory hash encoding cassandra

5
推荐指数
1
解决办法
521
查看次数

Cassandra =单个节点上单行上的列更新的原子性/隔离?

抱歉再次向Cassandra再问一些事情,我非常感谢你的喜好:

我读过这个:http://wiki.apache.org/cassandra/FAQ#batch_mutate_atomic并且完全迷失了,并且想知道:

这是真的吗,在Cassandra WRITES上一个SIGLE NODE for ONE ROW-KEY(有很多列在同一列中使用batch_mutate进行更新)不会在同一节点上对同一行键盘上的READ进行隔离,保证读取没有准备好"部分更改数据"?例:

Current Status:     [KEY=1 , ColumnName=A with Value=A , ColumnName=B with Value=B] on Node 1
Client A => Writes: [KEY=1 , ColumnName=A with Value=C , ColumnName=B with Value=D] on Node 1
Run Code Online (Sandbox Code Playgroud)

原子性:

根据cassandra文档,写入是客户执行写入的原子:上面的写入要么完全成功要么完全失败!?类似的事情 [KEY=1 , ColumnName=A with Value=C , ColumnName=B with Value=B](=一半的列更新成功,但另一半尚未应用/ faild)在出错时不能成为Write的结果?它是否正确?

隔离:

这是真的吗,即使在一个单节点(这里是节点1)写入也不是孤立的,因为有人在同一个节点上读取相同的ROW?如上所述,如果客户端A已更新其一半要更改的列(此处ColumnName = A且值为C),是否确实如此,那么节点1的另一个客户端B连接将确实将该记录视为

Client B => Reads:  [KEY=1 , ColumnName=A with Value=C , ColumnName=B with Value=B] on Node 1
Run Code Online (Sandbox Code Playgroud)

几毫秒后,再次阅读它会看到什么?

Client B => Reads:  [KEY=1 , …
Run Code Online (Sandbox Code Playgroud)

java concurrency cassandra

3
推荐指数
1
解决办法
1835
查看次数

Java = Getter/Setter =这是否会在运行时和访问时间(CPU周期?)中增加"对象大小"

我需要编写一个ajax applicatoin,在服务器端(在java中实现)将创建数百万个小对象并保存在内存中.通常我会对任何对象使用beanstyle(使用getter/setter).

我的问题:它是否在运行时有所不同(关于内存使用和访问的CPU时间),对于实例化对象具有getter/setter方法而不是拥有它们并直接访问字段/成员?例如,如果让getter/setter使每个方法和实例的对象变大5bytes,那么这将大大增加数百万个ob对象.访问getter vers同样直接访问有关cpu周期的成员/变量.

public String myvartoaccess;

vs

private String myvartoaccces;
public String getMyvartoaccess();
Run Code Online (Sandbox Code Playgroud)

非常感谢!延

java performance

2
推荐指数
1
解决办法
1471
查看次数