关于String的matches方法

弊端:

虽然String.matches方法最易于看一个字符串是否与正则表达式相匹配。但并不适合在注重性能的情形中重复使用。

问题在于,它内部为正则表达式创建了一个Pattern实例,却只用一次,之后就可以进行垃圾回收了。创建Pattern实例的成本很高。因为需要将正则表达式编译成一个有限状态机

为了提升性能,应该显式地将正则表达式编译成一个Pattern实例(不可变),让它成为类初始化的一部分,并将它缓存起来:

public class RomanNumerals{
    private static final Pattern ROMAN=Pattern.compile(...);
    static boolean isRomanNumeral(String s){
        return ROMAN.matcher(s).matches();
    }
}

猜你喜欢

转载自www.cnblogs.com/lccsblog/p/10988928.html
今日推荐