Andrii Sydorov
можно по подробней, не до конца понял о чём речь
Порядок проверок значим.
Смотри, что у тебя.
Первая проверка - на объекте-строке вызывается метод isEmpty(), проверяется его результат.
Если строка null, то на этом вызове получится null pointer exception, и всё.
Вторая проверка происходит только после первой, а первая или уже испортила всё, если нулл, или успешно исполнилась, и из этого уже следует, что строка не нулл.
Третья вообще чепуха (потому что если у тебя строка и правда null, то попытка вызвать equals на этом объекте вернёт NPE опять же, а если не NPE, то они уже не равны).