Какова цель метода переворота ByteBuffer? (И почему это называется «переворот»?)

Почему метод ByteBuffer flip () называется «flip»? Что здесь "перевернуто"? Согласно apidoc, два последовательных переворота не восстановят исходное состояние, а несколько переворотов, вероятно, будут иметь тенденцию limit()к нулю. Могу ли я как-нибудь "развернуть", чтобы повторно использовать...