String replaceAll () vs. Matcher replaceAll () (Różnice wydajności)

Dość proste pytanie, ale pochodzi od osoby z C / C ++ wchodzącej w zawiłości Javy.

Rozumiem, że mogę odpalić jUnit i przeprowadzić kilka własnych testów wydajności, aby uzyskać odpowiedź; ale zastanawiam się tylko, czy to tam jest.

Czy istnieją znane różnice między String.replaceAll () i Matcher.replaceAll () (Na obiekcie Matcher utworzonym z Regex.Pattern) pod względem wydajności?

Ponadto, jakie są różnice wysokiego poziomu API między tymi dwoma? (Niezmienność, obsługa NULLów, obsługa pustych łańcuchów, zaparzanie kawy itp.)

questionAnswers(7)

yourAnswerToTheQuestion