Одним важливим моментом, на який натякають, але безпосередньо не вирішується, є різниця між "точністю" та "шкалою" та способом їх використання у двох твердженнях. "точність" - це загальна кількість значущих цифр у числі. "шкала" - це кількість цифр праворуч від десяткової коми.
Конструктор MathContext приймає лише аргументи точності та RoundingMode, тому масштаб ніколи не вказується в першому твердженні.
setScale()
Очевидно приймає шкалу як аргумент, як і RoundingMode, однак точність ніколи не визначається у другому твердженні.
Якщо перемістити десяткову точку на одне місце праворуч, різниця стане зрозумілою:
// 1.
new BigDecimal("35.3456").round(new MathContext(4, RoundingMode.HALF_UP));
//result = 35.35
// 2.
new BigDecimal("35.3456").setScale(4, RoundingMode.HALF_UP);
// result = 35.3456