2012-04-07 80 views
0

我对于经常需要存储在数据库中的列有一定的值。以前,我曾将这些值缓存为static final byte[]类字段,但不幸的是byte[]不允许更简单的相等比较(以检查另一个字节数组元素是否与此相同),因此我正在考虑使用static final ByteBuffer类字段,因为它允许我为更容易的平等比较(我的DB无论如何都需要将所有值转换为ByteBuffer写入)ByteBuffer作为类中的静态最终字段

现在,因为我是新来的ByteBuffer的使用,我只是想问问有没有任何问题,有一些(< 100)static final ByteBuffer我的班内场每片含[]的长度为2字节?

+5

为什么不简单地使用一个byte []然后java.util.Arrays.equals(byte [] a,byte [] b)'? – 2012-04-07 03:42:43

+0

我对这个问题有点困惑:为什么你的缓存字节需要“静态”? – 2012-04-07 03:43:25

+0

@HovercraftFullOfEels:实际上我使用的API是平等比较,所以我不能使它工作 – 2012-04-07 03:44:55

回答

0

你担心什么样的问题?缓冲区不是线程安全的......但目前还不清楚你的使用需求是什么,所以可能会或可能不会成为问题。 ByteBuffer的源代码(以及所有的缓冲区)可供您查看..在一天结束时,它是一个顶部有糖的final byte[]

+0

我需要它们用于只读目的。 – 2012-05-25 05:18:36