java selector 在没有数据的时候readable是什么情况?

用java nio做长连接消息服务:

selector.select();
Set<SelectionKey> selectionKeys = selector.selectedKeys();
Iterator<SelectionKey> iterator = selectionKeys.iterator();
while (iterator.hasNext()) {
    SelectionKey selectionKey = iterator.next();
    iterator.remove();
    handleKey(selectionKey);
}

客户端没有发任何数据过来,只是保持了连接状态,selectkey.isReadable()却老是返回true,然后调用selectionkey.channel().read()也确实读不到数据,这是为什么?

用完 selectionKey后remove掉
while (iterator.hasNext()) {
SelectionKey selectionKey = iterator.next();
iterator.remove();
handleKey(selectionKey);
iterator.remove();
}