public interface Checksum
代表数据校验和的接口。
- 自版本:
- 1.1
-
Method Summary
-
Method Details
-
update
void update(int b) 使用指定的字节更新当前校验和。- 参数:
-
b
- 用于更新校验和的字节
-
update
default void update(byte[] b) 使用指定的字节数组更新当前校验和。- 实现要求:
-
此默认实现等同于调用
update(b, 0, b.length)
。 - 参数:
-
b
- 用于更新校验和的字节数组 - 抛出:
-
NullPointerException
- 如果b
为null
- 自版本:
- 9
-
update
void update(byte[] b, int off, int len) 使用指定的字节数组更新当前校验和。- 参数:
-
b
- 用于更新校验和的字节数组 -
off
- 数据的起始偏移量 -
len
- 用于更新的字节数
-
update
使用指定缓冲区中的字节更新当前校验和。校验和将使用缓冲区中剩余的字节进行更新,从缓冲区的位置开始。返回时,缓冲区的位置将更新为其限制;其限制不会被更改。- API 注释:
- 对于 DirectByteBuffer 和其他没有支持数组的 ByteBuffer 实现,此接口的实现者应该重写此方法以获得最佳性能。
- 实现要求:
-
默认实现具有以下行为。
对于由可访问字节数组支持的 ByteBuffer。
对于不由可访问字节数组支持的 ByteBuffer。update(buffer.array(), buffer.position() + buffer.arrayOffset(), buffer.remaining());
byte[] b = new byte[Math.min(buffer.remaining(), 4096)]; while (buffer.hasRemaining()) { int length = Math.min(buffer.remaining(), b.length); buffer.get(b, 0, length); update(b, 0, length); }
- 参数:
-
buffer
- 用于更新校验和的 ByteBuffer - 抛出:
-
NullPointerException
- 如果buffer
为null
- 自版本:
- 9
-
getValue
long getValue()返回当前校验和值。- 返回:
- 当前校验和值
-
reset
void reset()将校验和重置为其初始值。
-