2012-04-07 42 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

相關問題