Известно, что ссылочные типы необходимо сравнивать с помощью equals. Есть нюансы, что для Integer в диапазоне от -128 до 127 сравнение происходит с помощью == и это отдельная история. Вопрос, почему
String line;
while(!(line = br.readLine()).equals("ESC")){}
и в тоже время
String line;
while((line = br.readLine()) != null){}
Почему с null сравниваем с помощью ==?
Java берет начало из C++, тот -- из C. В Java null
остался ссылкой на пустое значение.
В C же по стандарту любые два объекта, указывающие на null
, равны.
Источник: ISO/IEC 9899 параграф 6.3.2.3, пункт 4.
... Any two null pointers shall compare equal.
Кроме того, у null
нет метода (функции) equals
, т.е. код ниже приведет к исключению:
((String)null).equals(null)
Почему у null
нет функций? Ссылка опять к языку C.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Использую MYSQLiЕсть такая проблема, при выполнении SQL транзакций иногда появляется ошибка: Deadlock found when trying to get lock; try restarting transaction
Мне нужно с базы данных сделать выборку и сформировать файл и предложить пользователю его сохранитьС базы данных возвращается двумерный...