String str=readString(); // read lengthy string any source db,textbox/jsp etc.. // This will place the string in memory pool from which you cant remove str.intern();
private String intern(String s) { if (flags.intern) { return s.intern(); } else { return s; } }
private String intern(String s) { if (flags.intern) { return s.intern(); } else { return s; } }
private String intern(String s) { if (globalFlags.intern) { return s.intern(); } return s; }
private void checkInterning(String name) { if (namesInterned && name != name.intern()) { throw new IllegalArgumentException( "all names passed as arguments must be interned" + "when NAMES INTERNED feature is enabled"); } }
/** * Null-safe String intern method. * @return A canonical representation for the string object. Null for null input strings */ @Nullable public static String intern(@CheckForNull String s) { return s==null ? s : s.intern(); }
private static void addNumerals(TreeMap<String, Integer> map, int start, int end, Integer[] integers) { for (int i=start; i<=end; i++) { map.put(String.valueOf(i).intern(), integers[i]); } }
private void addAllInterningAndPrefixing(Collection<String> accumulator, Collection<String> addend, String prefix) { assert prefix != null; for (String protoFeat : addend) { if ( ! prefix.isEmpty()) { protoFeat = prefix + protoFeat; } if (globalFlags.intern) { protoFeat = protoFeat.intern(); } accumulator.add(protoFeat); } }
/** Share data structure with other builds, mainly those of the same job. */ private PackedMap<String,String> compact(Map<String,String> record) { Map<String,String> b = new HashMap<String,String>(); for (Entry<String,String> e : record.entrySet()) { b.put(e.getKey().intern(), e.getValue().intern()); } return PackedMap.of(b); }
/** * Normalizes a nonterminal contents. * This implementation strips functional tags, etc. and interns the * nonterminal. */ @Override public String normalizeNonterminal(String category) { return cleanUpLabel(category).intern(); }
/** * Normalizes a nonterminal contents. * This implementation strips functional tags, etc. and interns the * nonterminal. */ @Override public String normalizeNonterminal(String category) { return cleanUpLabel(category).intern(); }
protected String getFullName(String schemaName, String tableName) { StringBuilder sb = new StringBuilder(); if (schemaName != null) { sb.append(appendEscape(schemaName)).append(DOT); } sb.append(appendEscape(tableName)); return sb.toString().intern(); }
public String getSelectSql(String schemaName, String tableName, String[] pkNames, String[] columnNames) { StringBuilder sql = new StringBuilder("select "); int size = columnNames.length; for (int i = 0; i < size; i++) { sql.append(appendEscape(columnNames[i])).append((i + 1 < size) ? " , " : ""); } sql.append(" from ").append(getFullName(schemaName, tableName)).append(" where ( "); appendColumnEquals(sql, pkNames, "and"); sql.append(" ) "); return sql.toString().intern();// 不使用intern,避免方法区内存消耗过多 }
public String getDeleteSql(String schemaName, String tableName, String[] pkNames) { StringBuilder sql = new StringBuilder("delete from " + getFullName(schemaName, tableName) + " where "); appendColumnEquals(sql, pkNames, "and"); return sql.toString().intern();// intern优化,避免出现大量相同的字符串 }
/** * Removes duplicate graphs from the set, using the string form of the graph * as the key (obviating issues with object equality). */ public static Collection<SemanticGraph> removeDuplicates(Collection<SemanticGraph> graphs) { Map<String, SemanticGraph> map = Generics.newHashMap(); for (SemanticGraph sg : graphs) { String keyVal = sg.toString().intern(); map.put(keyVal, sg); } return map.values(); }
public String getUpdateSql(String schemaName, String tableName, String[] pkNames, String[] columnNames) { StringBuilder sql = new StringBuilder("update " + getFullName(schemaName, tableName) + " set "); appendColumnEquals(sql, columnNames, ","); sql.append(" where ("); appendColumnEquals(sql, pkNames, "and"); sql.append(")"); return sql.toString().intern(); // 不使用intern,避免方法区内存消耗过多 }