• 1.35

  • +6.84

Java-конференция для разработчиков

⚠ Интересное мероприятие от наших партнеров

Если вы подписаны на нас больше пары месяцев, вы знаете, что мы любим мотивировать писать код: утром, днем, вечером, ночью, – неважно! Важно то, что сегодня мы ловим исключение!
Если вы находитесь на 20+ уровне, то в пятницу-субботу на этой неделе мы советуем вам погрузиться в мир Java – 22-23 апреля состоится главная в России Java-конференция для разработчиков JPoint 2016: javapoint.ru/

И если Java вам реально интересна, пропускать нельзя: 50 докладов и 1000 единомышленников – конференции открывают второе дыхание для занятий и помогают взглянуть на задачи с нового ракурса.

А если вы еще не достигли высшего мастерства – то в воскресенье 24 апреля рекомендуем посетить студенческий день JPoint 2016 SD. В программе — 2 Java-чемпиона, разработчик JVM, разработчик Hazelcast, обладатель Duke's Choice Award и другие гуру мирового уровня, а также стенды работодателей и стажировки: students.javapoint.ru/

Вопросы на собеседование Hibernate

Данная статья является переводом и улучшением зарубежных статей (список ресурсов перечислен в конце статьи). Ответы на некоторые вопросы расширены, представлены ссылки на сторонние ресурсы которые содержат ответы которые могут возникнуть в процессе чтения.

1) Что такое Hibernate?

Это фреймворк для объектно-реляционного отображения сущностей в традиционные реляционные базу данных.
Основные возможности фреймворка:
1) Автоматическая генерация и обновление таблиц в базах данных;
2) Поскольку основные запросы к базе данных (сохранение, обновление, удаление и поиск) представлены как методы фрейморка, то значительно сокращается код, который пишется разработчиком;
3) Обеспечивает использование SQL подобного языка (HQL — hibernate query language). Запросы HQL могут быть записаны рядом объектами данных (POJO классы подготовленные для работы с базой данных).

2) Как Hibernate помогает в программировании?

Hibernate реализует ряд фичь которые значительно упрощают работу разработчика.
— Одной из таких фичь является то, что hibernate позволяет разработчику избежать написания большинства SQL запросов (они уже реализованы, вам надо просто использовать методы которые предоставляет фреймворк).
— Под бортом у Hibernate есть куча полезных инструментов которые значительно ускоряют работу приложения, самыми примечательными из них являются двухуровневое кэширования и тонкие настройки lazy и fetch изъятия.
— Сам генерирует таблицы в базу данных.

3) Способы конфигурации работы с Hibernate.

Существует четыре способа конфигурации работы с Hibernate:
— используя аннотации;
— hibernate.cfg.xml;
— hibernate.properties;
— persistence.xml.
Самый частый способ конфигурации: через аннотации и файл persistence.xml, что касается файлов hibernate.properties и hibernate.cfg.xml, то hibernate.cfg.xml главнее (если в приложение есть оба файла, то принимаются настройки из файла hibernate.cfg.xml). Конфигурация аннотациями, хоть и удобна, но не всегда возможна, к примеру, если для разных баз данных или для разных ситуаций вы хотите иметь разные конфигурацию сущностей, то следует использовать xml файлы конфигураций.

4) Какие ключевые интерфейсы использует Hibernate?

Существует пять ключевых интерфейсов которые используются в каждом приложении связанном с Hibernate:
— Session interface;
— SessionFactory interface;
— Configuration interface;
— Transaction interface;
— Query and Criteria interfaces.

5) Какая роль интерфейса Session в Hibernate?

Session — это основной интерфейс, который отвечает за связь с базой данных. Так же, он помогает создавать объекты запросов для получение персистентных объектов. (персистентный объект — объект который уже находится в базе данных; объект запроса — объект который получается когда мы получаем результат запроса в базу данных, именно с ним работает приложение). Обьект Session можно получить из SessionFactory:
Session session = sessionFactory.openSession();
Роль интерфейса Session:
— является оберткой для jdbc подключения к базе данных; (https://ru.wikipedia.org/wiki/Java_Database_Connectiv..)
— является фабрикой для транзакций (согласно официальной документации transaction — аllows the application to define units of work, что, по сути, означает что транзакция определяет границы операций связанных с базой данных).
— является хранителем обязательного кэша первого уровня.

6) Какая роль интерфейса SessionFactory в Hibernate?

Именно из объекта SessionFactory мы получаем объекты типа Session. На все приложение существует только одна SessionFactory и она инициализируеться вместе со стартом приложения. SessionFactory кэширует мета-дату и SQL запросы которые часто используются приложением во время работы. Так же оно кэширует информацию которая была получена в одной из транзакций и может быть использована и в других транзакциях.
Обьект SessionFactory можно получить следующим обращением:
SessionFactory sessionFactory = configuration.buildSessionFactory();

7) Какие типы коллекций представлены в Hibernate?

Bag, Set, List, Map, Array.

8) Что собой являет коллекция типа Bag и зачем она используется?

Своей реализации тип коллекции Bag очень напоминает Set, разница состоит в том, что Bag может хранить повторяющиеся значения. Bag хранит непроиндексированный список элементов. Большинство таблиц в базе данных имеют индексы отображающие положение элемента данных один относительно другого, данные индексы имеют представление в таблице в виде отдельной колонки. При объектно-реляционном маппинге, значения колонки индексов мапится на индекс в Array, на индекс в List или на key в Map. Если вам надо получить коллекцию объектов не содержащих данные индексы, то вы можете воспользоваться коллекциями типа Bag или Set (коллекции содержат данные в неотсортированном виде, но могут быть отсортированы согласно запросу).

9) Какая разница в работе методов load(); и get();?

Метод load(); обычно используется когда в не уверен что запрашиваемый объект уже находится в базе данных. Если объект не найден, то метод кидает исключение Если объект найден — метод возвращает прокси объект, который является ссылкой на объект находящийся в базе данных (запрос в базу данных еще не был осуществлен, своего рода lazy изъятие), непосредственный запрос к базе данных когда мы непосредственно обращаемся к необходимому объекту через прокси объект.
Метод get(); используется тогда, вы на 100 процентов не уверены есть ли запрашиваемый объект в базе данных. В случае обращение к несуществующему объекту, метод get(); вернет null. В случае нахождения объект, метод get(); вернет сам объект и запрос в базу данных будет произведен немедленно.

10) Что такое Lazy fetching(изъятие) в Hibernate?

Тип изьятия Lazy, в Hibernate, связан с листовыми(дочерними) сущностями и определяют политику совместного изъятия, если идет запрос на изъятие сущности родителя.
Простой пример:
Есть сущность Дом. Он хранит информацию о своем номере, улице, количество квартир и информацию о семьях которые живут в квартирах, эти семьи формируют дочернюю сущность относительно сущности Дом. Когда мы запрашиваем информацию о Доме, нам может быть совершенно ненужным знать информацию семьях которые в нем проживают, тут нам на помощь приходит lazy(ленивое) изъятие(fetching) которая позволяет сконфигурировать сущность Дом, чтобы информацию о семьях подавалась только по востребованию, это значительно облачает запрос и ускоряет работу приложения.

©dev-bay

Студенты IT-специальностей, изучающие Java!

⚠ Интересное мероприятие от наших партнеров

Студенты IT-специальностей, изучающие Java!

24 апреля в Москве в гостинице «Славянская» состоится профессиональная Java-конференция JPoint 2016 Student Day. Это конференция для тех, кто интересуется Java-технологиями и кому еще не исполнилось 25 лет.

В программе — 16+ докладов от ведущих русскоязычных Java-экспертов (среди них 2 Java-чемпиона, разработчик JVM, разработчик Hazelcast, обладатель Duke's Choice Award и другие эксперты мирового уровня), представление компаний-партнеров и стенды ведущих Java-работодателей, на которых вы можете узнать о вакансиях и стажировках для молодых Java-специалистов.

Если вы студент и смотрите в сторону Java – вам на сайт конференции: students.javapoint.ru

Если вы преподаватель, напишите Руслану Ахметзянову [https://vk.com/avadd0n]– вы можете реально помочь конференции стать лучше и познакомить ваших студентов с «большим миром» Java.

EPAM HackDay

⚠ Интересное мероприятие от наших партнеров

16-17 апреля в Санкт-Петербурге пройдет хакатон EPAM HackDay, на котором более 300 разработчиков на Java, JavaScript или DevOps, QA, Big Data, .NET, Test Automation, C++, дизайнеров, архитекторов программного обеспечения объединятся в команды, чтобы разработать и представить собственные ИТ-проекты. Участники получат ровно 24 часа на реализацию своих задумок от идеи до работающего решения.

Номинации:
• Tech — за комплексный в технологическом плане прототип, полностью разработанный на EPAM HackDay;
• Data Driven Solution — за разработку решения в области использования и обработки данных;
• Social impact — за применение IT-решений для проектов, которые могут повлиять на жизнь общества;
• Special Prize from EPAM — за нестандартное решение и инновации.

Победители разделят призовой фонд размером 250 000 рублей. Помимо этого, участников ждут море сувениров и возможность работать над интересными проектами в отличной компании.

EPAM HackDay стартует в субботу (16 апреля) в 9:00 в пространстве “Скороход” по адресу: Санкт-Петербург, Московский проспект, дом 107, корпус 5. Представление разработанных проектов начнется в воскресенье (17 апреля) в 17:30. Подробная программа: vk.cc/4Z3UfL

Участники могут объединиться в команды заранее, либо сформировать команды после регистрации непосредственно на мероприятии. Участие бесплатное. Регистрация обязательна vk.cc/4Z3UfL

Организатор хакатона компания EPAM, один из мировых лидеров в сфере ИТ и консалтинга. Сегодня EPAM объединяет более 16 000 высококвалифицированных ИТ-профессионалов. В трех офисах EPAM в Санкт-Петербурге работает больше 1000 сотрудников. Давно хотели в команду такого уровня? Входной билет перед вами, осталось его взять.

Java-конференция JET, 24-25 Апреля, Минск, Кинотеатр "Silver Screen"!

⚠ Интересное мероприятие от наших партнеров

Java-конференция JET, 24-25 Апреля, Минск, Кинотеатр «Silver Screen»!

День мастер-классов и 4 потоков докладов в день конференции.

Темы потоков:
1. Новые полезные инструменты, архитектурные решения, которые упрощают жизнь Java-разработчика (Microservices, Spring Boot, Apache Bootique, JCache, Takes Framework)
2. Управление данными, проблема выбора базы для своего проекта, ORM альтернативы (Hadoop, Apache Cassandra, Neo4j, Mybatis, Apache Cayenne)
3. Инструменты тестирования, его разновидности и когда им заниматься уже не стоит (Mutation Testing, Cuko-Rest, ApacheBench, Spark Analytics)
4. Kotlin как будущее разработки (Kotlin introduction, Spring Boot + Kotlin, Kotlin Bytecode Generation, Kotlin Runtime Perfomance)

Все это и еще много всего интересного на jetconf.by

Mini Update (обновление редактора кода)

Mini Update (обновление редактора кода)

Спешим поделиться радостной новостью! Редактор кода на JavaRush получил новую функцию — Autocomplete.

JavaRush update
Теперь также как в IntelliJ IDEA редактор на сайте будет анализировать набранный вами текст и предлагать наиболее релевантные варианты продолжения (методы, классы, переменные).

Рекомендуем всем, кто еще не успел познакомиться с новым функционалом, сделать это как можно скорее — javarush.ru/

P.S. Не забудьте почистить кэш (ctrl + f5)

WEGAME – главное событие играющей Украины

Интересное мероприятие от наших партнеров

16-17 апреля 2016 года в Киеве состоится международная фестиваль интерактивных развлечений WEGAME. Каждый поклонник виртуальных миров и электронных развлечений уже запасается билетами!

WEGAME – это настоящий рай для фаната видеоигр! Здесь можно увидеть самые свежие компьютерные и консольные игры, поиграть в них, подержать в руках долгожданные мобильные хиты, перекинуться парой слов с настоящими живыми разработчиками и побывать на презентации всех тех проектов, что заставляют геймеров страдать от бессонницы и мучиться от нетерпения. WEGAME – это всё самое-самое! Самые яркие презентации, самые увлекательные конкурсы, самые красивые девушки-промоутеры, самые напряжённые турниры, самые крутые призы и всё то, что греет сердце любого фаната интерактивных развлечений!

Именно на WEGAME впервые в Украине будут представлены последние новинки ведущих отечественных и зарубежных компаний. Воспользуйтесь шансом увидеть, пощупать и поиграть в главные проекты игровой индустрии задолго до того, как они попадут в руки игроков! Зачем смотреть трейлеры на YouTube, если можно прийти на выставку и поиграть?

Гостей WEGAME ожидает погружение в VR-реальность посредством новейших очков, масштабная презентация консольных новинок, демонстрационные стенды, на которых посетители смогут опробовать последние достижения компьютерной техники и самые новые мобильные устройства!

Фанаты киберспорта в течение WEGAME смогут лично наблюдать за соревнованиями любимых отечественных и зарубежных команд Высшей лиги. Самые удачливые и настырные смогут пообщаться с людьми, которые сделали себе имя в мире прогейминга, и получить советы и мастер-классы от «звёзд».

Гости выставки смогут купить самые новые игры, геймпады, профессиональные игровые мыши и другое важное для каждого игрока оборудование по специальным ценам! Фанатам поп-культуры представится возможность отовариться сувенирами, статуэтками любимых персонажей фильмов и игр, а также другими интересными штуковинами – никто не уходит с WEGAME с пустыми руками!

Фанаты косплея, мастера перевоплощения и люди, способные отличить Гульдана от Артаниса, смогут показать себя во всей красе и посмотреть на красу других. В рамках специальной программы WEGAME приглашает всех косплееров представить свои самые любимые образы и самые лучшие работы в кругу единомышленников. Здесь вас оценят по достоинству!

Не пропустите! 16-17 апреля 2016-го, НСК «Олимпийский». Главное событие года в мире игр. Приходите – не пожалеете!
Прямо сейчас на нашем сайте можно узнать, как идёт подготовка к событию, и поделиться впечатлениями: wegame.com.ua/.

Присоединяйтесь к нашим официальным группам в социальных сетях: FB и ВК.

Контакты организаторов:
+38 044 392 06 96
client@smileexpo.com.ua