Qual é o propósito do método flip de ByteBuffer? (E por que é chamado de “flip”?)

Por que o método flip () de ByteBuffer é chamado de "flip"? O que é "invertido" aqui? De acordo com o apidoc, dois giros sucessivos não restaurarão o estado original e vários giros provavelmente tenderão limit()a se tornar zero. Posso "desviar" de alguma forma para reutilizar os bytes que...