both! in jetty-8 the jetty-io buffers are an abstraction over either byte arrays or NIO ByteBuffers. If you are using SelectChannelConnector, then you are using NIO ByteBuffers wrapped as jetty io Buffers.
When you start writing content, it initially goes into a buffer. Once the response is committed, we need to generate a header, which can be of variable size. So rather than moving the content up in it's buffer we use a separate header buffer and then to a gather write to write the headers and content as a single write.