Разница между методами replace и replaceAll в Java заключается в том, что replace предназначен для простой замены символьных литералов, а replaceAll использует регулярные выражения для реализации более сложной механики поиска и замены. 1
replace() ориентирован на строгое соответствие символов или последовательности символов (CharSequence), что делает его более быстрым для выполнения простых текстовых замен. 1
replaceAll() предлагает больше возможностей, поскольку позволяет осуществлять замену, определённую регулярными выражениями. 1 Например, с его помощью можно заменять подстроки, которые не известны точно, но их можно найти с помощью регулярного выражения. 3
Таким образом, replace() меняет первое вхождение, а replaceAll() — все вхождения согласно указанному шаблону. 1