Они определенно не одинаковы. Ваша переменная String действует как ссылка на объект в памяти, и если для нее задано значение null, она ни на что не указывает. Если для него задано значение пустой строки, оно указывает на это.
В моем собственном кодировании я обычно устанавливаю String на "" вместо null, если у меня нет особой потребности в null. Есть некоторые библиотеки, такие как Apache Commons, которые включают вспомогательные классы, такие как StringUtils, которые свернут проверку на пустое значение, пустую строку и даже просто пропуски в один вызов: StringUtils.isBlank (), StringUtils.isNotBlank () и т. Д. Очень удобно. Или вы можете написать свои собственные вспомогательные методы, чтобы сделать подобное довольно легко.
Удачи в Java!