com.alexkasko.unsafe.bytearray
class UnsafeByteArrayTool extends ByteArrayTool
ByteArrayTool
using sun.misc.Unsafe
.
All bound checks are done using assert
keyword, they may be enabled
with java ea
switch.Modifier and Type | Field and Description |
---|---|
private static long |
BYTE_ARRAY_OFFSET |
private static sun.misc.Unsafe |
UNSAFE |
Constructor and Description |
---|
UnsafeByteArrayTool() |
Modifier and Type | Method and Description |
---|---|
void |
copy(byte[] src,
int srcPos,
byte[] dest,
int destPos,
int length)
Copies part of one array into another.
|
byte |
getByte(byte[] data,
int offset)
Gets byte
|
int |
getInt(byte[] data,
int offset)
Gets four bytes as int
|
long |
getLong(byte[] data,
int offset)
Gets long
|
short |
getShort(byte[] data,
int offset)
Gets two bytes as short
|
short |
getUnsignedByte(byte[] data,
int offset)
Gets one byte (stored as one signed byte), converts it to unsigned
and returns it as short
|
long |
getUnsignedInt(byte[] data,
int offset)
Gets unsigned int (stored as 4 bytes) and returns it as long
|
int |
getUnsignedShort(byte[] data,
int offset)
Gets unsigned short (stored as two bytes) and returns it as int
|
boolean |
isUnsafe()
Whether current tool instance uses
sun.misc.Unsafe |
void |
putByte(byte[] data,
int offset,
byte value)
Puts byte
|
void |
putInt(byte[] data,
int offset,
int value)
Puts int as four bytes
|
void |
putLong(byte[] data,
int offset,
long value)
Puts long as eight bytes
|
void |
putShort(byte[] data,
int offset,
short value)
Puts short as two bytes
|
void |
putUnsignedByte(byte[] data,
int offset,
short value)
Puts short with value from 0 to 255 inclusive into byte array as one
signed byte
|
void |
putUnsignedInt(byte[] data,
int offset,
long value)
Puts long value from 0 to 4294967295 inclusive as four bytes
|
void |
putUnsignedShort(byte[] data,
int offset,
int value)
Puts int with value from 0 to 65535 inclusive as two bytes
|
bitshift, get, unsafe
private static final sun.misc.Unsafe UNSAFE
private static final long BYTE_ARRAY_OFFSET
UnsafeByteArrayTool()
public boolean isUnsafe()
sun.misc.Unsafe
isUnsafe
in class ByteArrayTool
public byte getByte(byte[] data, int offset)
getByte
in class ByteArrayTool
data
- byte arrayoffset
- byte array indexpublic void putByte(byte[] data, int offset, byte value)
putByte
in class ByteArrayTool
data
- byte arrayoffset
- byte array indexvalue
- valuepublic short getUnsignedByte(byte[] data, int offset)
getUnsignedByte
in class ByteArrayTool
data
- byte arrayoffset
- byte array indexpublic void putUnsignedByte(byte[] data, int offset, short value)
putUnsignedByte
in class ByteArrayTool
data
- byte arrayoffset
- byte array indexvalue
- unsigned bytepublic short getShort(byte[] data, int offset)
getShort
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetpublic void putShort(byte[] data, int offset, short value)
putShort
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetvalue
- short valuepublic int getUnsignedShort(byte[] data, int offset)
getUnsignedShort
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetpublic void putUnsignedShort(byte[] data, int offset, int value)
putUnsignedShort
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetvalue
- unsigned short as intpublic int getInt(byte[] data, int offset)
getInt
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetpublic void putInt(byte[] data, int offset, int value)
putInt
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetvalue
- int valuepublic long getUnsignedInt(byte[] data, int offset)
getUnsignedInt
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetpublic void putUnsignedInt(byte[] data, int offset, long value)
putUnsignedInt
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetvalue
- unsigned int as longpublic long getLong(byte[] data, int offset)
getLong
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetpublic void putLong(byte[] data, int offset, long value)
putLong
in class ByteArrayTool
data
- byte arrayoffset
- byte array offsetvalue
- long valuepublic void copy(byte[] src, int srcPos, byte[] dest, int destPos, int length)
System.arraycopy(Object, int, Object, int, int)
that is used by fallback implementation usescopy
in class ByteArrayTool
src
- source arraysrcPos
- source array positiondest
- destination arraydestPos
- destination array positionlength
- length to copyCopyright © 2014. All Rights Reserved.