Библиотека джависта | 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
加入频道
Неизменяемость (immutability) помогает облегчить написание многопоточного кода. Неизменяемый объект может быть использован без какой-либо синхронизации. К сожалению в Java нет аннотации @ Immutable, которая делает объект неизменяемым, для этого разработчикам нужно самим создавать класс с необходимыми характеристиками. Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только конструкторе, отсутствие методов setX() вносящих изменения в поля класса, отсутствие утечек ссылки, организация отдельного хранилища копий изменяемых объектов и т.д.
Хотите работать в IT-сфере и получать достойную зарплату? Изучайте Java! Присоединяйтесь к бесплатному интенсиву, где вы познакомитесь с основами популярного языка и напишете своё первое приложение всего за три дня.

Бесплатная регистрация по ссылке: 👉 https://clc.am/k1vzRg

Почему Java — отличный выбор?
Имеет дружественный синтаксис.
Один написанный код будет работать на Windows, Linux и macOS.
3 млрд устройств работают на Java, в том числе Android.

💣 Спикер интенсива — специалист с опытом более 15 лет в сфере Java-разработки, директор центра SymbioWay Даниил Пилипенко.

🎁 Проявите себя, напишите лучший проект и получите грант на обучение в онлайн-университете Skillbox!
JDBC, Java DataBase Connectivity (соединение с базами данных на Java) — промышленный стандарт взаимодействия Java-приложений с различными СУБД. Реализован в виде пакета java.sql, входящего в состав Java SE.

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

Поговорим про микросервисную архитектуру, рассмотрим применение Java 11 в контейнерной среде, сделаем тесты на примере Spring Boot и посмотрим на частые ошибки при проектировании Java-приложений.

Наши спикеры:
Дмитрий Чуйко, Senior Performance Architect в BellSoft, участник OpenJDK
Маргарита Богданова, Team Lead, Architect, DataArt
Александр Линьков, Tech Lead, Leroy Merlin

Комментарии от экспертов:
Алексей Картынник, .NET-разработчик и автор ютуб-канала АйТиБорода
Евгений Нестеров, System Architect в МВидео

Когда: 24 сентября в 18:00
Регистрация и подробности докладов
Чат митапа
Потоки-демоны работают в фоновом режиме вместе с программой, но не являются неотъемлемой частью программы. Если какой-либо процесс может выполняться на фоне работы основных потоков выполнения и его деятельность заключается в обслуживании основных потоков приложения, то такой процесс может быть запущен как поток-демон с помощью метода setDaemon(boolean value), вызванного у потока до его запуска. Метод boolean isDaemon() позволяет определить, является ли указанный поток демоном или нет. Базовое свойство потоков-демонов заключается в возможности основного потока приложения завершить выполнение потока-демона (в отличие от обычных потоков) с окончанием кода метода main(), не обращая внимания на то, что поток-демон еще работает.
23 сентября в 19:00 (МСК) мы будем проводить вебинар “Зачем нужна математика в Data Science”.

Спикеры вебинара:
Алексей Никитин.
Кандидат физико-математических наук, доцент факультета ВМК МГУ. Читает лекции по математическому анализу первых двух курсов на факультете ВМК МГУ и ФКН ВШЭ.
Леонид Крицков. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Автор задачника "Алгебра и аналитическая геометрия: теоремы и задачи", используемого в преподавании на факультете ВМК МГУ.
Татьяна Захарова. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Имеет опыт преподавания теории вероятностей и математической статистики более 28 лет.

На этом вебинаре мы расскажем:
• Data Science и математика: почему одно без другого невозможно
• Пример. Как математика описывает нейронную сеть
• Области Data Science и связанные разделы математики
• Где этому можно научиться

Ведущим будет Артём Дрёмов, CEO Proglib
Будет полезно всем, кто хочет стать специалистом в анализе данных.
🎱 Сможет ли программа заменить Data Scientist: платформы для машинного обучения без программирования

Было бы здорово, если бы модель машинного обучения можно было просто перетащить иконкой в проект, drag-and-drop. Стоп… но ведь такое уже есть! Рассказываем о восьми сервисах автоматизации задач Data Science.

https://proglib.io/sh/a9nuG1hfkY
💪📱 10 инструментов тестирования производительности мобильных приложений

Сравниваем инструменты тестирования производительности мобильных приложений, в том числе предоставляемые услуги и стоимость: Gatling, JMeter, Apptim и другие.

https://proglib.io/sh/o514GkpwBL
Когда поток вызывает join() для другого потока, текущий работающий поток будет ждать, пока другой поток, к которому он присоединяется, не будет завершён:
void join()
void join(long millis)
void join(long millis, int nanos)
#вопросы_с_собеседований
Какие существуют уровни изолированности транзакций?
В порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными:

☕️ Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
☕️ Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
☕️ Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
☕️ Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
Как принудительно запустить поток?
Никак. В Java не существует абсолютно никакого способа принудительного запуска потока. Это контролируется JVM и Java не предоставляет никакого API для управления этим процессом.
#вопросы_с_собеседований
Для чего в стримах предназначен метод sorted()?