네트워크로 데이터를 전달하려고 합니다.

어떤 것을 사용해야 할지 기준이 명확하게 서지 않고 몇가지 의문이 들어 질문 드립니다.

ByteBuffer를 생성하려고 하는데요. 방법이 3가지 메서드가 있습니다.

1. allocate()

2. allocateDirect()

3. wrap()

책이나 넷 정보를 보면 allocate보다는 allocateDirect를 사용하는것기 빠르고 좋다고 합니다.

그런데 allocateDirect는 한번 생성해서 재사용하는것이 효율적이라고 합니다.

처음 allocateDirect로 크기를 10으로 생성 했습니다. 그런데 어떤 팻킷의 크기가 15라면

처음 생성한 buffer 크기보다 커서 재사용 할 수 없는 것 안닌지요?

여기서 또 다른 의문점이 생기는대요 바로 wrap입니다. 이 메서드는 기존 버퍼를 재 사용 할 수 있다고 한다면

그럼 allocateDirect로 생성한 크기 10을 갖는 buffer를 다시 15의 크기로 재 정의 해서 사용 할 수 있는 것인지요?

이 때 buffer는a llocateDirect로 생성 한 것과 같은 성능을 가지게 되는지요?

마지막으로 allocateDirect 생성한 버퍼를 해제를 따로 해주어야 하는건지요?

좋은 하루 되십시오!