Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9에서 컴팩트 문자열이란 무엇입니까?


Java 9부터 JVM은 컴팩트 라는 새로운 기능을 사용하여 문자열을 최적화합니다. 문자열 . char[ 대신 ] 배열 , 문자열은 byte[]로 표현될 수 있습니다. 정렬. UTF-16을 사용할 수 있습니다. 또는 라틴-1 문자당 1 또는 2바이트를 생성합니다. JVM이 문자열에 ISO-8859-1/Latin-1만 포함된 것을 감지하는 경우 문자열은 내부적으로 문자당 1바이트를 사용합니다.

문자열은 간결한 문자열로 나타낼 수 있으며 문자열 생성 시 감지되지 않습니다. 이 기능은 기본적으로 활성화되어 있으며 -XX:-CompactStrings를 사용하여 끕니다. . char[]로 되돌아가지 않습니다. 구현하고 모든 문자열을 UTF-16으로 저장합니다.

// In Java 8
public class String {
   private final char[] value; // Stores characters in the string
      ---------
}

// In Java 9
public class String {
   private final byte[] value; // Stores characters in the string
   private final byte coder; // a flag whether to use 1 byte per character or 2 bytes per characters for this string

      ---------
}