// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. package jumbostring; import java.io.IOException; import java.io.PrintStream; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; class JumboString { public static void main(String[] args) { // Make sure this string sorts after the field names and string values in the StringPoolX.java // files to ensure this is a jumbo string. System.out.println("zzzz - jumbo string"); } // Code for generating the StringPoolX.java files. // // We only need to generate two files to get jumbo strings. Each file has 16k static final fields // with values, and both the field name and the value will be in the string pool. public static void generate() throws IOException { int stringsPerFile = (1 << 14); for (int fileNumber = 0; fileNumber < 2; fileNumber++) { Path path = FileSystems.getDefault().getPath("StringPool" + fileNumber + ".java"); PrintStream out = new PrintStream( Files.newOutputStream(path, StandardOpenOption.CREATE, StandardOpenOption.APPEND)); out.println( "// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file"); out.println( "// for details. All rights reserved. Use of this source code is governed by a"); out.println("// BSD-style license that can be found in the LICENSE file."); out.println("package jumbostring;"); out.println(); out.println("class StringPool" + fileNumber + " {"); int offset = fileNumber * stringsPerFile; for (int i = offset; i < offset + stringsPerFile; i++) { out.println(" public static final String s" + i + " = \"" + i + "\";"); } out.println("}"); out.close(); } } }