В чем разница создания объекта в Java так, или так?
Первый случай:
Ты объявляешь переменную типа StackOfStrings с именем s,  но не инициализируешь её
А только потом делаешь это во второй строке 
Второй случай:
Ты объявляешь переменную типа StackOfStrings с именем s и сразу же инициализируешь её
По сути разницы нет, в основном это оформление кода
Все просто: в первом варианте выражение занимает две строки, а во втором одну.