Size: a a a

Библиотека джависта

2020 December 12
Библиотека джависта
#вопросы_с_собеседований
LinkedHashMap - что в нем от LinkedList, а что от HashMap?
источник
2020 December 13
Библиотека джависта
Реализация LinkedHashMap отличается от HashMap поддержкой двухсвязного списка, определяющего порядок итерации по элементам структуры данных. По умолчанию элементы списка упорядочены согласно их порядку добавления в LinkedHashMap (insertion-order). Однако порядок итерации можно изменить, установив параметр конструктора accessOrder в значение true. В этом случае доступ осуществляется по порядку последнего обращения к элементу (access-order). Это означает, что при вызове методов get() или put() элемент, к которому обращаемся, перемещается в конец списка.

При добавлении элемента, который уже присутствует в LinkedHashMap (т.е. с одинаковым ключом), порядок итерации по элементам не изменяется.
источник
Библиотека джависта
#вопросы_с_собеседований
Чем отличается ArrayList от LinkedList? В каких случаях лучше использовать первый, а в каких второй?
источник
2020 December 14
Библиотека джависта
Научись программировать на самом востребованном языке в сфере IT и стань  Java-разработчиком.

Чем интересна именно эта профессия? Повторимся, что Java — самый востребованный язык, работать с ним несложно и интересно, заработок немаленький, и еще один большой плюс — можно работать удаленно из любой точки мира. Круто, да?

📌 Тогда забирай курс «Профессия Java-разработчик» со скидкой до 60% в этом месяце!
📌 Все подробности по ссылке: https://clc.to/3_4U1Q

Что тебя ждет:
✔️ интересная и продуманная программа курса;
✔️ решение бизнес-задач компании;
✔️ много часов практики;
✔️ доступ к этому курсу на веки-вечные (ну а вдруг ты что-то забудешь);

И самое главное, после обучения Skillbox гарантирует трудоустройство в IT-компанию!
источник
Библиотека джависта
ArrayList:
✔️Доступ к произвольному элементу по индексу за константное время O(1);
✔️Доступ к элементам по значению за линейное время O(N);
✔️Вставка в конец в среднем производится за константное время O(1);
✔️Удаление произвольного элемента из списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку влево (реальный размер массива (capacity) не изменяется);
✔️Вставка элемента в произвольное место списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку вправо;
✔️Минимум накладных расходов при хранении.

LinkedList:
✔️На получение элемента по индексу или значению потребуется линейное время O(N);
✔️На добавление и удаление в начало или конец списка потребуется константное O(1);
✔️Вставка или удаление в/из произвольного места за константное O(N);
✔️Требует больше памяти для хранения такого же количества элементов, потому что кроме самого элемента хранятся ещё указатели на следующий и предыдущий элементы списка.

В целом, LinkedList в абсолютных величинах проигрывает ArrayList и по потребляемой памяти, и по скорости выполнения операций. LinkedList предпочтительно применять, когда нужны частые операции вставки/удаления или в случаях, когда необходимо гарантированное время добавления элемента в список.
источник
Библиотека джависта
#вопросы_с_собеседований
Как закрыть соединение с базой данных? (JDBC)
источник
2020 December 15
Библиотека джависта
Соединение с базой данной закрывается вызовом метода close() у соответствующего объекта java.sql.Connection или посредством использования механизма try-with-resources при создании такого объекта, появившегося в Java 7.

NB! Предварительно необходимо закрыть все запросы созданные этим соединением.
источник
Библиотека джависта
Хотите быть востребованным тестировщиком?

Начните осваивать автотестирование на Java уже 16 декабря на демо-занятии «Паттерн PageObject». Вместе с Антоном Картушиным вы разберете, что делать, когда у вас сотни или даже тысячи тестов, а бизнес решил переделать кнопочку. Чтобы все автотесты не пришлось перечитывать и рефакторить, нужно сразу продумать их архитектуру. Тут на помощь и приходят паттерны. С одним из них, а именно самым популярным, вы и познакомитесь на этом занятии.

Демо-урок входит в программу онлайн-курса «Java QA Engineer», предназначенного для начинающих тестировщиков. Используйте эту возможность попробовать курс и познакомиться с преподавателем.

Для регистрации на занятие пройдите вступительный тест https://otus.pw/X8o0/
источник
Библиотека джависта
#вопросы_с_собеседований
Какие конечные методы работы со стримами вы знаете?
источник
2020 December 16
Библиотека джависта
Java MeetUp в Иннополисе
Бесплатный онлайн-митап от Иннополиса по Java 17 декабря.

Обсудим:
— распространенные уязвимостях в ПО и о стратегии его защиты
— основные ошибки при написании тестов в приложении и рекомендации по их недопущению
— production-системы на стыке Java-технологий и высшей математики, успешно работающие на глобальных финансовых рынках.

Наши спикеры:
🎙Дмитрий Янтер, аналитик, Deutsche Bank Technology Centre
📢Никита Куртин, Director of Research and Development, CubedMobile
🎤Александр Линьков, Tech Lead, Leroy Merlin

Эксперты митапа:
📣Дмитрий Чуйко, Senior Performance Architect, BellSoft
🔈Андрей Когунь, руководитель группы Java-разработчиков, КРОК

Когда: 17 декабря в 18:00
Регистрация и подробности докладов
Чат митапа
источник
Библиотека джависта
findFirst() возвращает первый элемент;
findAny() возвращает любой подходящий элемент;
collect() представление результатов в виде коллекций и других структур данных;
count() возвращает количество элементов;
anyMatch() возвращает true, если условие выполняется хотя бы для одного элемента;
noneMatch() возвращает true, если условие не выполняется ни для одного элемента;
allMatch() возвращает true, если условие выполняется для всех элементов;
min() возвращает минимальный элемент, используя в качестве условия Comparator;
max() возвращает максимальный элемент, используя в качестве условия Comparator;
forEach() применяет функцию к каждому объекту (порядок при параллельном выполнении не гарантируется);
forEachOrdered() применяет функцию к каждому объекту с сохранением порядка элементов;
toArray() возвращает массив значений;
reduce()позволяет выполнять агрегатные функции и возвращать один результат.
Для числовых стримов дополнительно доступны:

sum() возвращает сумму всех чисел;
average() возвращает среднее арифметическое всех чисел.
источник
Библиотека джависта
Курс для middle- и senior-разработчиков, которые хотят стать тимлидами

Новичком быть просто: все новое и интересное, море информации, но как быть уже прокаченным девелоперам? Мы тоже задавали себе этот вопрос и просто точечно обучали наших разработчиков, делая их мощными тимлидами.
В нашем понимании тимлид — это не просто крутой программист, но и тот, кто умеет аккумулировать свои знания, обучать команду и выстраивать работу в ней, понимает продукт и работает от бизнес-целей. Тут важны и hard, и soft skills, и эмоциональный интеллект. Поэтому мы собрали весь свой 14-летний опыт работы над сложными сервисами и высоконагруженными сайтами и создали 6-ти месячный курс именно тех, кто хочет вырасти и систематизировать свои знания. Договорились с Geekbrains, и теперь именно там можно пройти обучение. Второй поток стартует уже совсем скоро — 24 декабря, а тут должен быть призыв к действию, поэтому просто записывайтесь на курс: https://proglib.io/w/9236cebf

На связи была команда AGIMA!
источник
Библиотека джависта
#вопросы_с_собеседований
Напишите однопоточную программу, которая заставляет коллекцию выбросить ConcurrentModificationException.
источник
2020 December 17
Библиотека джависта
2020 бросил вызов каждому человеку, бизнесу, государству. Впереди 2021 год и новые изменения. Как отбросить страх перед глобальными вызовами? Получить новый импульс? QIWI и Магнит объединились, чтобы напомнить о важной роли технологий в трансформации каждого из нас, а также в развитии бизнеса и общества.

17 декабря в 16:00 состоится бесплатный онлайн митап #MGNTQIWI «Новый мир: как технологии влияют на человека и общество» с участием Евгения Кузнецова – футуролога, руководителя московского отделения Университета Сингулярности, генерального директора ООО «Орбита Капитал Партнерз». Евгений расскажет, как оставаться на гребне цифровой волны, не отставать от трендов и справляться с вызовами технологической эпохи.

Регистрируйтесь по ссылке https://mgntqiwi.ru и присоединяйтесь к бесплатной лекции и Q&A сессии 17 декабря в 16:00.
ИЗМЕНЕНИЯ – вот о чем пойдет речь в рамках митапа. Трансформируется все, а значит, нужно и нам.
Давайте меняться вместе!
источник
Библиотека джависта
import java.util.ArrayList;
import java.util.List;

public class Main
{
 public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();
   list.add(1);
   list.add(2);
   list.add(3);

   for (Integer integer : list) {
       list.remove(1);
   }
 }
}
источник
Библиотека джависта
#вопросы_с_собеседований
Что такое «сервлет»?
источник
2020 December 18
Библиотека джависта
Сервлет является интерфейсом, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ. Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов.

Большинство необходимых для создания сервлетов классов и интерфейсов содержатся в пакетах javax.servlet и javax.servlet.http.

Основные методы сервлета:
☕️ public void init(ServletConfig config) throws ServletException запускается сразу после загрузки сервлета в память;
☕️ public ServletConfig getServletConfig() возвращает ссылку на объект, который предоставляет доступ к информации о конфигурации сервлета;
☕️ public String getServletInfo() возвращает строку, содержащую информацию о сервлете, например: автор и версия сервлета;
☕️ public void service(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOException вызывается для обработки каждого запроса;
☕️ public void destroy() выполняется перед выгрузкой сервлета из памяти.
источник
Библиотека джависта
#вопросы_с_собеседований
В каком случае требуется переопределять метод service()?
источник
2020 December 19
Библиотека джависта
Метод service() переопределяется, когда необходимо, чтобы сервлет обрабатывал все запросы (и GET, и POST) в одном методе.

Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода service(), который в зависимости от поступившего запроса вызывает или метод doGet() или метод doPost().
источник
2020 December 20
Библиотека джависта
Object-Oriented Data Structures Using Java (2020)
Авторы: Nell Dale, Daniel T. Joyce, Chip Weems
Количество страниц: 694

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

Скачать книгу
источник