В Java примитивные типы (int, long, boolean и т. Д.) Сравниваются на равенство с использованием ==
, тогда как типы объектов (String и т. Д.) Сравниваются на равенство с использованием метода equals()
.Если вы сравниваете два типа объектов, используя ==
, вы проверяете идентичность , а не равенство, то есть вы будете проверять, имеют ли два объекта одинаковую ссылку в памяти (и, следовательно,тот же объект);и вообще, вам просто нужно проверить, совпадают ли их значения , и для этого вы используете equals()
.
. В качестве хорошей практики программирования лучше сравнивать строки типаэто, переворачивая порядок строк:
while ("y".equals(confirm)) {
Таким образом, вы можете быть уверены, что сравнение будет работать, даже если confirm
было нулевым, избегая потенциального NullPointerException
.