2个简单问题,问题1不用看完代码,直接看注释。
import java.nio.channels.*;
import java.util.concurrent.*;
import java.io.*;public class FileLocking {
  public static void main(String[] args) throws Exception {
    FileOutputStream fos= new FileOutputStream("file.txt");
    FileLock fl = fos.getChannel().tryLock();
    if(fl != null) {
      System.out.println("Locked File");
      TimeUnit.MILLISECONDS.sleep(100);  //问题1:这句代码不是很明白,JDK的解释看不大明白。
      fl.release();
      System.out.println("Released Lock");
    }
    fos.close();
  }
}问题2:
128MB 用16进制为什么是 0X8FFFFFF ? 我是这么想的,1024 = 1MB ,1024*128 = 131072 再用计算机转出16进制表示等于 20000