Почему в JAVA не рекомендуется использовать пакет по умолчанию? Хотя я понимаю, что имеет смысл иметь более разумные и описательные имена пакетов для удобства и удобочитаемости, но есть ли другие причины этого?
Соглашения об именах пакетов предназначены для предотвращения коллизий пространства имен.
Если вы создаете класс под названием "Тест", а тысячи других людей также создают классы с этим именем, потому что вы используете разные имена пакетов, они не сталкиваются.
Если вы никогда не публикуете свой код, это не такая уж большая проблема, но если вы когда-либо выпускаете библиотеку, вам нужно использовать соответствующие пакеты. Даже для ваших собственных проектов требуется очень мало времени, чтобы сделать это правильно, поэтому лучше всего рано входить в хорошие привычки.
По правде говоря, это зависит. Если вы пишете тесты или бесполезный код, это не имеет значения. Как упоминалось выше, столкновение пространства имен важно. Для некоторых API, таких как Android и Bukkit, требуются имена пакетов.