【发布时间】:2010-10-11 17:30:27
【问题描述】:
学习Java,所以请温柔一点。理想情况下,我需要创建一个字节数组,指向更大数组的一部分:
byte[] big = new byte[1000];
// C-style code starts
load(file,big);
byte[100] sub = big + 200;
// C-style code ends
我知道这在 Java 中是不可能的,我想到了两种解决方法,包括:
将 big 的部分复制到 sub 中,遍历 big。
或者编写自己的类来引用 big + offset + size 并通过使用 big 作为实际底层的访问器方法实现“子数组”数据结构。
我要解决的任务是将文件加载到内存中,然后通过类获得对与文件一起存储的记录的只读访问权限。速度是最重要的,因此理想情况下我想避免复制或访问器方法。因为我正在学习 Java,所以我想坚持下去。
我还有其他选择吗?如果我没有很好地解释任务,请提出问题。
【问题讨论】:
-
不一致:byte[] sub = new byte[100];为 100 字节保留空间,但赋值 sub = big + 200;只存储一个指针。
-
斯甘斯兰特,真的。也移到了 C 风格的代码。
标签: java performance