String.format
возвращает новую строку, а System.out.printf
просто отображает вновь отформатированную строку в System.out, иногда называемую консолью.
Эти два фрагмента кода функционально эквивалентны:
String formattedString = String.format("%d is my favorite number", 42);
System.out.print(formattedString);
и
System.out.printf("%d is my favorite number", 42);