Библиотека джависта | 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
加入频道
Класс StringJoiner используется, чтобы создать последовательность строк, разделенных разделителем с возможностью присоединить к полученной строке префикс и суффикс:

StringJoiner joiner = new StringJoiner(".", "prefix-", "-suffix");
for (String s : "Hello the brave world".split(" ")) {
joiner.add(s);
}
System.out.println(joiner); //prefix-Hello.the.brave.world-suffix
#вопросы_с_собеседований
Для чего нужны функциональные интерфейсы Predicate<T>, DoublePredicate, IntPredicate и LongPredicate?
Predicate<T> (предикат) - интерфейс, с помощью которого реализуется функция, получающая на вход экземпляр класса T и возвращающая на выходе значение типа boolean.

Интерфейс содержит различные методы по умолчанию, позволяющие строить сложные условия (and, or, negate).

Predicate<String> predicate = (s) -> s.length() > 0;
predicate.test("foo"); // true
predicate.negate().test("foo"); // false

☕️ DoublePredicate
- предикат, получающий на вход Double;
☕️ IntPredicate - предикат, получающий на вход Integer;
☕️ LongPredicate - предикат, получающий на вход Long.
#вопросы_с_собеседований
Как получить вторую субботу текущего месяца используя Date Time API?
LocalDate
.of(
LocalDate.now().getYear(), LocalDate.now().getMonth(), 1)
.with(TemporalAdjusters.nextOrSame(DayOfWeek.SATURDAY))
.with(
TemporalAdjusters.next(DayOfWeek.SATURDAY));
Интенсив по Docker для разработчиков без «капитанской теории». Отправляемся 25 февраля.

На 2 дня оставим за бортом всё то, о чём и так все знают и погрузимся в глубины крутейшей практики. Вы запустите сайт в контейнере, соберёте несколько контейнеров в рабочую систему, запустите готовый pipeline в Gitlab, рассмотрите подводные камни использования stateful и Docker и научитесь обходить ограничения DockerHub. Помимо этого расскажем об особенностях использования контейнеров с ruby, php, python, go, java, c#, c++ и работе Docker в облаках.

Интересно? А ведь это ещё не всё! Почитать всю программу (там много вкусного) и посмотреть реальные примеры практических заданий можно на сайте.

Йо-хо-хо, морские волки! На абордаж!
Инкапсуляция — в информатике размещение в одном компоненте данных и методов, которые с ними работают. Также может означать скрытие внутренней реализации от других компонентов.
Наследование — создание новой сущности на базе уже существующей.
Полиморфизм — возможность иметь разные формы для одной и той же сущности.
Абстракция — набор общих характеристик.
Посылка сообщений — форма связи, взаимодействия между сущностями.
Переиспользование — все что перечислено выше работает на повторное использование кода.
Это единственно верный порядок парадигм ООП, так как каждая последующая использует предыдущие.
Java Software Solutions (2017)
Авторы: John Lewis, William Loftus
Количество страниц: 800

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

Скачать книгу
#вопросы_с_собеседований
1. Для чего в JUnit используется аннотация @Ignore?
2. Чем stub отличается от mock (в тестовых объектах)?
Начал самостоятельно изучать Python? Хотел бы получить советы от практикующих специалистов?

С 1 по 3 февраля будет проходить бесплатный онлайн-интенсив Skillbox по программированию, где ты получишь полезные знания и советы практикующего специалиста, сооснователя и технического директора Lia с семилетним опытом в разработке на Python Никиты Левашова.

Подробности по ссылке: 👉 https://clc.am/va7GEw

На занятиях мы расскажем:

как написать скрипт на Python по подбору паролей;
как работать с файлами и запросами;
как реализовать brute-force attack;
как защититься от такой атаки;
как написать консольный интерфейс.

🎁 Всех, кто дойдёт до конца, ждёт подарок — электронная книга Кей Петерсон и Дэвида Колба «Век живи — век учись» издательства МИФ!
1. @Ignore указывает JUnit на необходимость пропустить данный тестовый метод.

2. stub используется как заглушка сервисов, методов, классов и т.д. с заранее запрограммированным ответом на вызовы.

mock использует подмену результатов вызова, проверяет сам факт взаимодействия, протоколирует и контролирует его.
#вопросы_с_собеседований
В чём различия между volatile и Atomic переменными?
volatile принуждает использовать единственный экземпляр переменной, но не гарантирует атомарность. Например, операция count++ не станет атомарной просто потому что count объявлена volatile. C другой стороны class AtomicInteger предоставляет атомарный метод для выполнения таких комплексных операций атомарно, например getAndIncrement() – атомарная замена оператора инкремента, его можно использовать, чтобы атомарно увеличить текущее значение на один. Похожим образом сконструированы атомарные версии и для других типов данных.
Какие медиа Вы читаете?

Пройдите короткий опрос и получите промокод 5% на все курсы Библиотеки программиста!

https://docs.google.com/forms/d/e/1FAIpQLSd3389cZTNhrnifV_5JaQuKVXzUFykk74Y-pK7jVioqlrV3lQ/viewform

Опрос займет всего пару минут
#вопросы_с_собеседований
Где и как вы можете использовать приватный конструктор?
Приватный (помеченный ключевым словом private, скрытый) конструктор может использоваться публичным статическим методом генерации объектов данного класса. Также доступ к нему разрешён вложенным классам и может использоваться для их нужд.
#вопросы_с_собеседований
Что такое тернарный оператор выбора?
Всем привет!
Мы сделали сервис, который отбирает вакансии по вашим интересам.
Настройте личные фильтры: локация, точный технологический стек, и, конечно, не забудьте о деньгах.

Все самые подходящие предложения рынка – в @GetMeIT_bot