Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8276926

Use String.valueOf() when initializing File.separator and File.pathSeparator

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 18
    • None
    • core-libs
    • None
    • b24

      Currently we do it like

      public static final String separator = "" + separatorChar;

      Which after compilation turns into

      NEW java/lang/StringBuilder
      DUP
      INVOKESPECIAL java/lang/StringBuilder.<init> ()V
      LDC ""
      INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      GETSTATIC java/io/File.pathSeparatorChar : C
      INVOKEVIRTUAL java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
      PUTSTATIC java/io/File.pathSeparator : Ljava/lang/String;

      This can be simplified to

      public static final String separator = String.valueOf(separatorChar);

      Which is in turn complied into

      GETSTATIC java/io/File.pathSeparatorChar : C
      INVOKESTATIC java/lang/String.valueOf (C)Ljava/lang/String;
      PUTSTATIC java/io/File.pathSeparator : Ljava/lang/String;

      Which is likely to slightly improve start-up time.

            stsypanov Sergey Tsypanov
            stsypanov Sergey Tsypanov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: