[Tencent Ali byte Java must ask] Сборник общих вопросов на собеседовании + подробные ответы, не волнуйтесь после прочтения интервью (10)

Последний сборник общих вопросов на собеседовании по Java от 2020 г. + подробные ответы (10)

Продолжайте обновлять материалы по Java. Недавно я провел 7 дней, просматривая последние новости интервью с большими парнями, чтобы собрать более полную информацию об интервью. Вы можете перейти на мою домашнюю страницу, если хотите увидеть несколько первых коллекций.

Некоторые ответы резюмирую я, а некоторые собраны в Интернете. Не паникуйте после просмотра этих интервью! Если у вас есть больше опыта, вы можете поделиться им в комментариях. Если у вас есть ошибки, вы можете указать на них. Пожалуйста, дайте мне знать, спасибо ~

Двенадцать, спящий режим

 

113. Зачем нужен спящий режим?

 

  • Код базы данных доступа JDBC инкапсулирован, что значительно упрощает утомительный и повторяющийся код уровня доступа к данным.

  • Hibernate - это основная структура персистентности, основанная на JDBC и отличной реализации ORM. Он значительно упростил кодирование слоя DAO.

  • Hibernate использует механизм отражения Java вместо программы улучшения байт-кода для достижения прозрачности.

  • Производительность гибернации очень хорошая, потому что это легкий фреймворк. Гибкость картографирования отличная. Он поддерживает различные реляционные базы данных, от отношений «один к одному» до сложных отношений «многие ко многим».

Хотя я предоставил вам вопросы и анализ ответов, лучше всего проверить вопросы самостоятельно, и тогда вы узнаете больше.           

 

114. Что такое структура ORM?

 

Объектно-реляционное сопоставление (ORM), объектно-ориентированный метод разработки, является основным методом разработки в сегодняшней среде разработки корпоративных приложений, а реляционная база данных является основной системой хранения данных для постоянного хранения данных в среде корпоративных приложений. Объектные и реляционные данные - это два проявления бизнес-сущностей: бизнес-сущности представлены как объекты в памяти и как реляционные данные в базах данных. Между объектами в памяти существуют ассоциации и отношения наследования, тогда как в базе данных реляционные данные не могут напрямую выражать ассоциации «многие ко многим» и отношения наследования. Следовательно, система объектно-реляционного сопоставления (ORM) обычно существует в форме промежуточного программного обеспечения, которое в основном реализует сопоставление программных объектов с данными реляционной базы данных.

 

115. Как просмотреть напечатанный оператор sql в консоли в спящем режиме?

 

Ссылка: blog.csdn.net/Randy_Wang_/article/details/79460306

 

116. Сколько методов запроса у спящего режима?

 

  1. hql запрос

  2. sql запрос

  3. Запрос условий

 

hql查询,sql查询,条件查询

HQL:  Hibernate Query Language. 面向对象的写法:
Query query = session.createQuery("from Customer where name = ?");
query.setParameter(0, "苍老师");
Query.list();



QBC:  Query By Criteria.(条件查询)
Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.eq("name", "花姐"));
List<Customer> list = criteria.list();



SQL:
SQLQuery query = session.createSQLQuery("select * from customer");
List<Object[]> list = query.list();

SQLQuery query = session.createSQLQuery("select * from customer");
query.addEntity(Customer.class);
List<Customer> list = query.list();



Hql: 具体分类
1、 属性查询 2、 参数查询、命名参数查询 3、 关联查询 4、 分页查询 5、 统计函数



HQL和SQL的区别

HQL是面向对象查询操作的,SQL是结构化查询语言 是面向数据库表结构的

117. Можно ли определить классы сущностей гибернации как окончательные?

 

Класс сущности Hibernate можно определить как последний класс, но такой подход не годится. Поскольку Hibernate будет использовать режим прокси для повышения производительности в случае отложенной ассоциации, если вы определите класс сущности как конечный класс, поскольку Java не позволяет расширять последний класс, Hibernate больше не может использовать прокси, поэтому он ограничит Использование методов, позволяющих повысить производительность. Однако, если ваш постоянный класс реализует интерфейс и объявляет все общедоступные методы, определенные в классе сущности в интерфейсе, ваша очередь избегать неблагоприятных последствий, упомянутых выше.

 

118. В чем разница между использованием Integer и int для отображения в спящем режиме?

 

В Hibernate, если OID определен как тип Integer, то Hibernate может определить, является ли объект временным, на основании того, является ли его значение null. Если OID определен как тип int, вам также необходимо установить его несохраненный - в файле сопоставления hbm. Атрибут value равен 0.

 

119. Как работает спящий режим?

 

Как работает спящий режим:

 

  1. Через Configuration config = new Configuration (). Configure (); // Чтение и анализ файла конфигурации hibernate.cfg.xml

  2. Прочтите и проанализируйте информацию о сопоставлении с помощью <mapping resource = "com / xx / User.hbm.xml" /> в hibernate.cfg.xml

  3. Через SessionFactory sf = config.buildSessionFactory (); // Создаем SessionFactory

  4. Session session = sf.openSession (); // 打开 Сессия

  5. Transaction tx = session.beginTransaction (); // Создаем и запускаем транзакцию Transaction

  6. постоянные данные операции операции, постоянная операция

  7. tx.commit (); // Фиксируем транзакцию

  8. Закрыть сессию

  9. Закрыть SesstionFactory

 

120. В чем разница между get () и load ()?

 

  • Когда load () не использует другие свойства объекта, отложенная загрузка SQL отсутствует.

  • get () Когда другие атрибуты объекта не используются, SQL также генерируется и загружается немедленно.

 

121. Расскажите о механизме кеширования гибернации?

 

Кэш в Hibernate разделен на кеш первого уровня и кеш второго уровня.

 

Кэш первого уровня - это кеш уровня сеанса. Он действителен в рамках транзакции, и встроенный кеш не может быть удален. Кэш второго уровня - это кеш уровня SesionFactory, который действителен с начала до конца приложения. Это необязательно, по умолчанию кеш второго уровня отсутствует, и его необходимо включить вручную. После сохранения базы данных копия кеша сохраняется в памяти, и если база данных обновляется, она должна обновляться одновременно.

 

Какие данные подходят для хранения в кэше второго уровня?

 

  • Данные, которые редко изменяются Время последнего ответа на сообщение

  • Часто запрашиваемые данные Местоположение электронной торговли

  • Данные, которые не очень важны, иногда разрешены параллельные данные

  • Данные, к которым нельзя будет обращаться одновременно

  • Постоянные данные

 

Расширение: кеш второго уровня Hibernate по умолчанию не поддерживает распределенный кеш. Используйте memcahe, redis и другие центральные кеши вместо вторичных кешей.

122. Каковы статусы объектов гибернации?

 

В спящем режиме есть три состояния объектов:

 

  1. Transient (переходный процесс): объект только что появился, идентификатор не был установлен, а другие значения были установлены.

  2. Постоянный (постоянный): вызывается save (), saveOrUpdate (), он становится постоянным с идентификатором.

  3. Отсоединено: по окончании сеанса close () он становится Отсоединенным.

 

123. В чем разница между getCurrentSession и openSession в спящем режиме?

 

openSession можно увидеть буквально, это открыть новый объект сеанса, и каждое использование - открыть новый сеанс, если вы используете несколько раз, полученный сеанс не является тем же объектом, и вам нужно вызвать close после использования Способ закрытия сеанса.

 

getCurrentSession, буквально, заключается в получении объекта сеанса в текущем контексте.Когда этот метод используется в первый раз, автоматически создается объект сеанса, а когда он используется несколько раз подряд, полученный сеанс является тем же объектом. Это одно из отличий от openSession.Проще говоря, getCurrentSession - это: если есть уже использованный, используйте старый, если нет, создайте новый.

 

Примечание: в реальной разработке getCurrentSession часто используется чаще, потому что обычно обрабатывается одна и та же транзакция (то есть при использовании базы данных), поэтому в целом openSession используется редко или openSession - это более старый набор интерфейсов. .

 

124. Должен ли класс сущности спящего режима иметь конструктор без параметров? Почему?

 

Это должно быть связано с тем, что структура hibernate вызовет этот метод построения по умолчанию для создания объекта экземпляра, то есть метода newInstance класса Class.Этот метод создает объект экземпляра, вызывая метод построения по умолчанию.
 

Еще одно напоминание: если вы не предоставляете какой-либо метод построения, виртуальная машина автоматически предоставляет метод построения по умолчанию (конструктор без параметров), но если вы предоставляете другие методы построения с параметрами, виртуальная машина больше не будет предоставлять вам конструкцию по умолчанию. Метод. В это время вы должны вручную написать конструктор без параметров в коде, иначе new Xxxx () сообщит об ошибке, поэтому метод построения по умолчанию не требуется, он необходим только при наличии нескольких методов построения, здесь " "Должен" означает "должен быть написан вручную".

В конце концов

Содержание вопросов для собеседования находится здесь, в дальнейшем будет больше обновлений, я надеюсь, что это будет полезно для всех.

Наконец, я хочу кое-что сказать вам: я работал так много лет и брал интервью у одних людей для других. Будь то с точки зрения интервьюера или руководителя, помимо навыков и опыта собеседования, отличные технологии и опыт работы с проектами также являются их козырями и уверенностью. Совместное использование основных технологий производителями первого уровня

 Мне потребовалось много времени, чтобы разобрать некоторые учебные материалы. То, что я опубликовал выше, является верхушкой айсберга в материалах. Надеюсь, я смогу вам помочь! Нажмите, чтобы узнать секретный код вместе: csdn

                         

  Я поделюсь с вами другими статьями, посвященными чистой галантереи, и надеюсь, что действительно помогу вам. Ваша поддержка - моя самая большая мотивация! Добро пожаловать, чтобы следить и ставить лайки!

                                                       

рекомендация

отblog.csdn.net/weixin_50333534/article/details/108956310