ByteBuffer says that it could be either direct or non-direct. Given a direct byte buffer, the JVM will make a best effort to perform native I/O operations directly upon it. That is, it will attempt to avoid copying the buffer's content to (or from) an intermediate buffer before (or after) each invocation of one of the underlying operating system's native I/O operations.
Is this similar to Registers in C?
int main()
{
register int i = 10;
int *a = &i;
printf("%d", *a);
getchar();
return 0;
}
Where the value is stored directly in the register instead of loading it to memory.