Порівняння об'єктів є однією з основних операцій у програмах на мові Java. У мові Java існують два способи порівняти об'єкти: оператор "==" та метод equals(). Незважаючи на подібність, ці два способи мають різні принципи роботи та дають різні результати.
Оператор "==" порівнює два посилання на об'єкти і повертає "true", якщо вони вказують на той самий об'єкт, і "false" в іншому випадку. Оператор "==" порівнює лише посилання, а не вміст об'єктів. Тобто якщо два посилання вказують на різні об'єкти з однаковим вмістом, оператор "==" поверне "false".
Метод equals(), на відміну оператора "==", порівнює вміст об'єктів. Метод equals() визначений у класі Object і може бути перевизначений у класах користувача. При порівнянні двох об'єктів метод equals() порівнює їхні поля та повертає "true", якщо всі поля рівні, і "false" в іншому випадку. Метод equals() дозволяє контролювати критерії рівності об'єктів та порівнювати їх вміст за потрібними параметрами.
Різниця між оператором "==" та методом equals() полягає в тому, що оператор "==" порівнює посилання на об'єкти, а метод equals() порівнює їх вміст. При використанні оператора "==" потрібно бути уважним, щоб не порівнювати вміст об'єктів, а завжди використовувати метод equals(), коли потрібно порівнювати вміст об'єктів.
== | equals |
---|---|
Оператор == порівнює значення посилань на об'єкти. | Метод equals порівнює вміст об'єктів. |
Повертає true, якщо посилання вказують на той самий об'єкт. | Повертає true, якщо вміст об'єктів еквівалентний. |
Необхідно бути обережним при використанні для порівняння об'єктів типу Integer, Double та інших обгорток, оскільки це можуть бути різні об'єкти з однаковими значеннями. | Метод equals є розширеним для обгорток та порівнює значення. |
Застосовується порівняння примітивних типів даних. | Кожен клас може перевизначити метод equals для порівняння своїх полів. |
Зміст:
У чому проблема N 1?
Опис проблеми N+1: ця проблема виникає, коли ви запитуєте Список елементів і до кожного елемента цього списку запитуєте зв'язкові ресурси. У графкуель-запиті попросили 100 статей і до кожної статті запросили дані автора.
Навіщо потрібен Hibernate?
hibernate.org (англ.) Дозволяє скоротити обсяги низькорівневого програмування під час роботи з реляційними базами даних; може використовуватися як у процесі проектування системи класів і таблиць з нуля, так і для роботи з вже існуючою базою.
Як працює Hibernate?
Hibernate генерує SQL виклики та звільняє розробника від ручної обробки результуючого набору даних та конвертації об'єктів, зберігаючи додаток портованим у всі SQL бази даних.
Скільки рівнів кешу в Hibernate?
Hibernate підтримує три рівня кешування: Кешування на рівні сесії (Session) Кешування на рівні SessionFactory. Кешування запитів (та їх результатів)