标签: java if-statement int conditional-statements buffer
示例。检查此条件后,缓冲区的位置是否会移动?
if (variable==buffer.get()) { do something; buffer.rewind() }
答案 0 :(得分:1)
由于您指的是IntBuffer,因此: 是 。
IntBuffer
get()的Javadoc说:
get()
读取此缓冲区当前位置的int,然后增加该位置。
因此,如果if语句为false,则缓冲区肯定已移动。
if
如果if语句为true,则调用rewind(),并且javadoc说:
rewind()
该位置设置为零,并且标记被丢弃。
因此,如果在if语句之前位置最初不是零,则缓冲区移回零。
概述:如果缓冲区位置最初是在开头,并且if语句为true,则该代码会将缓冲区保留在相同位置,否则缓冲区将为“感动”。