Это действительно зависит от того, что вы делаете в своей программе.
"" (пустая строка) связана только со строкой, и это безопаснее, чем ноль. Когда вы вызываете методы из класса String, например: replaceAll (), indexOf (), программа будет работать правильно , но , когда у вас есть значение null, у вас все время возникает исключение NullPointerException, когда вы вызываете метод для него.
Подумайте, не является ли для вас значение пустой строки в вашем приложении плохим, тогда выберите str = "".
Обратите внимание, что очень часто лучше, когда выдается исключение NullPointerException, потому что мы знаем о недопустимом состоянии в нашем приложении, поэтому, когда вы хотите узнать об этом, установите String в null по умолчанию.