我正在阅读有关使用Java NIO构建可扩展的Java服务器的文章here。它包含以下代码段:
...
while (isRunning) {
// blocking call, to wait for new readiness events
int eventCount = selector.select();
// get the events
Iterator<SelectionKey> it = selector.selectedKeys().iterator();
while (it.hasNext()) {
SelectionKey key = it.next();
it.remove();
// readable event?
if (key.isValid() && key.isReadable()) {
eventHandler.onReadableEvent(key.channel());
}
// writable event?
if (key.isValid() && key.isWritable()) {
key.interestOps(SelectionKey.OP_READ); // reset to read only
eventHandler.onWriteableEvent(key.channel());
}
...
}
...
}
以上代码中的&符号是什么? 两个都在这里:
// get the events
Iterator<SelectionKey> it = selector.selectedKeys().iterator();
和这里:
// readable event?
if (key.isValid() && key.isReadable()) {
eventHandler.onReadableEvent(key.channel());
}
我知道单身&amp;用于if语句中的按位运算,但我不明白它是如何在上面两个例子中应用的。
答案 0 :(得分:3)
它无法编译,因为它是转义的HTML实体,<
与<
相同,>
与>
相同
lt
代表小于gt
代表大于amp
代表&符号答案 1 :(得分:2)
从网站复制来源时,某些特殊字符无法正确转换。
在您的情况下,<
等于<
,>
等于>
,&
等于&