关于java的内存管理
我以前心里有一个这样的想法,那就是假如一个方法是要被循环(可能是无限循环)调用的,那么这种做法将是愚蠢的:那就是在该方法中写new ,因为这样的话因为是很多次循环,如果这样不停的new 的话,那内存一定会被吃光的。可是我刚才式了一下这个程序:
import java.util.regex.Matcher;import java.util.regex.Pattern;public class test { public static void main(String args[]) { int count = 100000 * 100000000; for (int i = 0; i < count; i++) { new test(); System.out.println(i); } } private static String translate(String original) { StringBuffer newStr = new StringBuffer(""); Pattern p = Pattern.compile("[A-Za-z0-9\\s]"); char[] chars = new char[1]; Matcher m; for (int i = 0; i < original.length(); i++) { chars[0] = original.charAt(i); m = p.matcher(new String(chars)); if (!m.matches()) newStr.append(" ").append(original.charAt(i)).append(" "); else newStr.append(original.charAt(i)); } return newStr.toString(); }}