聽說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的結果
目測這快的不止一點點