code: @VisibleForTesting
    static String createNormalizedInternedPathname(String dir1, String dir2, String fname) {
      String pathname = dir1 + File.separator + dir2 + File.separator + fname;
      Matcher m = MULTIPLE_SEPARATORS.matcher(pathname);
      pathname = m.replaceAll("/");
      // A single trailing slash needs to be taken care of separately
      if (pathname.length() > 1 && pathname.endsWith("/")) {
        pathname = pathname.substring(0, pathname.length() - 1);
      }
      return pathname.intern();
    }
docs: This method is needed to avoid the situation when multiple File instances for the
  same pathname "foo/bar" are created, each with a separate copy of the "foo/bar" String.
  According to measurements, in some scenarios such duplicate strings may waste a lot
  of memory (~ 10% of the heap). To avoid that, we intern the pathname, and before that
  we make sure that it's in a normalized form (contains no "//", "///" etc.) Otherwise,
  the internal code in java.io.File would normalize it later, creating a new "foo/bar"
  String copy. Unfortunately, we cannot just reuse the normalization code that java.io.File
  uses, since it is in the package-private class java.io.FileSystem.