听说java9的spring.replace比java8的高效了许多,看看内部实现吧java
先看看java8中的 其中单个字符的处理正则表达式
replace(char oldChar, char newChar) 方法,使用你们已经很熟悉了吧spring
好比:mesquite in your cellar".replace('e', 'o') returns "mosquito in your collar"数组
上面那个是从代码注释中复制出来的例子,下面是对string中单个字符的替换,将数组val赋值给了buf,若是遇到oldchar就用newChar替换, 而后返回一个新的String。测试
而后看看java9的实现ui
那么先看看isLatin1干了什么?看意思好像是说用了ISO-8859-1编码仍是UTF编码,至于COMPACT_STRINGS,看注释说的是当设置成false的时候,默认使用UTF16编码。编码
看看StringLatin1中的replace好像实现来讲就加了编码的控制,方法好像差很少;字符串
java8中字符串匹配的replace,用了正则表达式的匹配处理替换。string
可是java9中的写法就不同了,是本身实现的,先获取第一个位置,接着往下替换,因此aaa用b替换aa,就会返回ba,而不是ab。it
复制一段文字测试一下
java8的结果
java9的结果
目测这快的不止一点点