查看 String 源码时发现:
调用 matches 方法时,
在内部 为正则表达式创建了一个 Pattern 对象,却只用了一次。
之后就可以进行垃圾回收了。

// String  这是String 的 matches 方法
public boolean matches(String regex) {
        return Pattern.matches(regex, this);
    }


// Pattern
public static boolean matches(String regex, CharSequence input) {
		// 创建了一个 Pattern 实例
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input);
        return m.matches();
    }

为了提升性能,应该显示的将正则表达式编译成一个 Pattern 实例(不可变),让它成为类的一部分,
并缓存起来,每次调用的时候重用同一个实例:

    private static final Pattern ROMAN = Pattern.compile("regex");

    static boolean isRomanString(String s){
        return ROMAN.matcher(s).matches();
    }

避免频发的创建回收对象!!!


版权声明:本文为weixin_44215154原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44215154/article/details/121665444