Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Декабрьский интенсив по SRE🦎

Формат: онлайн-интенсив (Zoom, записи занятий, git, стенды для практики, техподдержка и помощь спикеров).

На интенсиве разбираем SRE-подход к разработке и эксплуатации высоконагруженного сайта:
✔️будем настраивать и поддерживать сайт из нескольких микросервисов.
✔️сформулируем показатели SLO, SLI, SLA, разработаем архитектуру и инфраструктуру, соберем, протестируем и задеплоим сайт, настроим мониторинг и алертинг.
✔️определим причины ухудшения SLO, разберем устойчивость, error budget, практику тестирования, управление прерываниями и операционной нагрузкой.
✔️проработаем порядок действий в случае аварии.
✔️примем решения по дальнейшему предотвращению инцидентов.

Дата интенсива: 11–13 декабря 2020

Программа и регистрация на сайте - https://slurm.club/2HOUErw
Можно ли заменить настольный компьютер на Raspberry Pi 4?

В этой статье познакомимся с Raspberry Pi 4 и ответим на вопрос, сможет ли «Малина» заменить десктоп. Спойлер: на 90% – нет.

https://proglib.io/sh/WEJoq7CyFV
Spring Security in Action (2020)
Автор: Laurentiu Spilca
Количество страниц: 560

Автор показывает, как предотвратить атаки с использованием межсайтовых скриптов и подделки запросов до того, как они нанесут ущерб. Вы начнете с основ, моделируя обновление паролей и добавляя несколько типов авторизации. По мере роста ваших навыков вы адаптируете Spring к новым архитектурам и создадите расширенные конфигурации OAuth2. К концу работы с книгой у вас будет настроенная конфигурация, которая защитит от угроз.

Скачать книгу
Начни карьеру востребованного Java разработчика с наставниками из Java Mentor. Гарантированное трудоустройство в IT и оплата только за результат, когда начнешь работать.

Пройти входное тестирование: https://clck.ru/SDmoi

Тебя ждет высокая зарплата в топовых компаниях Москвы и минимум 10 предложений о работе. А еще 2 года карьерной поддержки с бесплатной возможностью принимать участие в онлайн и оффлайн мероприятиях с экспертами рынка.
Ответ на вопрос

Такой последовательности выполнения можно достичь многими способами, например, просто воспользоваться методом join(), чтобы запустить поток в момент, когда другой уже закончит своё выполнение. Для реализации заданной последовательности, нужно запустить последний поток первым, и затем вызывать метод join() в обратном порядке, то есть Т3 вызывает Т2.join, а Т2 вызывает Т1.join, таким образом Т1 закончит выполнение первым, а Т3 последним.
#вопросы_с_собеседований
Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?
Разбираем принципы работы Spring Framework!

В субботу, 12 декабря, состоится онлайн мастер-класс «Пишем свой DI-контейнер на Java», организованный IT-компанией MediaSoft и онлайн-университетом Skillbox.

В программе:
• Познакомимся со структурой современного Java-приложения;
• Разберемся, что такое зависимости, как с ними работать, и какие преимущества дает их внедрение;
• Рассмотрим принцип инверсии управления и как с его помощью снизить связность компонентов и улучшить модульность и расширяемость ПО;
• Реализуем собственный DI-контейнер;
• Рассмотрим практическое применение некоторых паттернов проектирования;
• Ответим на ваши вопросы.

Для кого: для разработчиков начального и среднего уровня. Подойдет как тем, кто только начинает разбираться со Spring, так и тем, кто уже уверенно работает с ним. Необходим опыт разработки на Java.

Когда: 12 декабря (суббота), 12:00-15:00 по московскому времени

Для участия необходимо зарегистрироваться 👈
#вопросы_с_собеседований
Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод submit() у ThreadPoolExecutor выкидывает RejectedExecutionException, после которого вызывается RejectedExecutionHandler.
#вопросы_с_собеседований
1. Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?
2. Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?
1. Если итератор указывает на последний элемент коллекции, то возникнет исключение NoSuchElementException, иначе будет возвращен следующий элемент.
2. Нисколько - hasNext() осуществляет только проверку наличия следующего элемента.
#вопросы_с_собеседований
Какими свойствами обладает порождаемое equals() отношение эквивалентности?
☕️ Рефлексивность: для любой ссылки на значение x, x.equals(x) вернет true;
☕️ Симметричность: для любых ссылок на значения x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) возвращает true.
☕️ Транзитивность: для любых ссылок на значения x, y и z, если x.equals(y) и y.equals(z) возвращают true, тогда и x.equals(z) вернёт true;
☕️ Непротиворечивость: для любых ссылок на значения х и у, если несколько раз вызвать х.equals(y), постоянно будет возвращаться значение true либо постоянно будет возвращаться значение false при условии, что никакая информация, используемая при сравнении объектов, не поменялась.

Для любой ненулевой ссылки на значение х выражение х.equals(null) должно возвращать false.
JDBC URL состоит из:

☕️ <protocol>: (протокола) - всегда jdbc:.
☕️ <subprotocol>: (подпротокола) - это имя драйвера или имя механизма соединения с базой данных. Подпротокол может поддерживаться одним или несколькими драйверами. Лежащий на поверхности пример подпротокола - это "odbc", отведенный для URL, обозначающих имя источника данных ODBC. В случае необходимости использовать сервис имен (т.е. имя базы данных в JDBC URL не будет действительным именем базы данных), то подпротоколом может выступать сервис имен.
☕️ <subname> (подимени) - это идентификатор базы данных. Значение подимени может менятся в зависимости от подпротокола, и может также иметь под-подимя с синтаксисом, определяемым разработчиком драйвера. Назначение подимени - это предоставление всей информации, необходимой для поиска базы данных. Например, если база данных находится в Интернет, то в состав подимени JDBC URL должен быть включен сетевой адрес, подчиняющийся следующим соглашениям: //<hostname>:<port>/<subsubname.

Пример JDBC URL для подключения к MySQL базе данных «Test» расположенной по адресу localhost и ожидающей соединений по порту 3306: jdbc:mysql://localhost:3306/Test
#вопросы_с_собеседований
Опишите основные этапы работы с базой данных при использовании JDBC.
#вакансия #Java #Spring #middle #senior #Москва #офис #удалённо

Позиция: Java разработчик
Компания: Компания Страховой Дом ВСК
Локация: Москва
Формат работы: офис или удалённо
Занятость: полная
З\п: 150 000 - 210 000 ₽/мес
Контакт: @maximvolkov89

Компания САО "ВСК" - топ 10 компаний лидеров на рынке страхового бизнеса. В штате порядка 7 тыс. сотрудников, в IT-подразделении более 500 сотрудников.

Ищем в команду Ведущего разработчика Java на дистанционное направление (Интернет магазин, Мобильное приложение, Мидл система) - автоматизации новых продуктов страхования, интеграций с внешними и внутренними сервисами, а так же внутренними системами Компании (back).

Перспективы проекта – полностью новый технологический стек, современные подходы в работе, глобальное изменение ИТ-ландшафта компании, в которой процессы разработки значительно упростятся.

Что предстоит делать:

- Разработка высокопроизводительного бэкенда;
- Интеграция со сторонними сервисами компании;
- Распил монолита на отдельные модули.

Стэк: Java 11, Apache Karaf, OSGI, Spring Boot, PostgreSQL, Camunda BPM, Docker, Elasticsearch.
Что нужно уметь

Что нужно уметь:

- Опыт работы с Java;
- Опыт работы с Apache Camel\Karaf, OSGI;
- Знания Core Java и Spring Framework;
- Опыт работы с одним из тестовых Framework: Junit, TestNG, Mockito;
- Опыт работы с базами данных PostgreSQL;

Условия и преимущества

- Оформление по ТК РФ.
- Официальная зп.
- Система премирования: до 2-х окладов в год.
- Корпоративный транспорт от м. Кунцевская/ м. Полежаевская.
- Возможность дистанционной работы фултайм.
- ДМС.
☕️ Регистрация драйверов;
☕️ Установление соединения с базой данных;
☕️ Создание запроса(ов) к базе данных;
☕️ Выполнение запроса(ов) к базе данных;
☕️ Обработка результата(ов);
☕️ Закрытие соединения с базой данных.