Prev Next

Java / Java 11

What are compact Strings in Java?

Since Java 9, the JVM optimizes strings by using a new feature called Compact Strings. Instead of having a char[] array, a string can be represented as a byte[] array. We can use either UTF-16 or Latin-1 to produce either one or two bytes per character. If JVM detects the string contains only ISO-8859-1/Latin-1 characters, then string uses one byte per character internally.

This feature is enabled by default and switches off using the -XX:-CompactStrings.

More Related questions...

Show more question and Answers...


Comments & Discussions