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.
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.