Was ist der Unterschied zwischen diesen beiden Anrufen? (Gibt es irgendwelche?)
// 1.
new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP));
// 2.
new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
round
Methode gibt auch eine neue Instanz von BigDecimal zurück, da die Instanzen, wie Sie sagten, unveränderlich sind.