📓 Книги по Java
870 subscribers
340 photos
27 videos
5 files
835 links
📓 Книги по Java

Самый крутой канал c подборкой книг, статей, но и как без рекламы все в одном месте
По ворпосам размещения @qa_autom
Download Telegram
Можно ли добавить одному элементу несколько одинаковых аннотаций?

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

Начиная с Java 8 в стандартную библиотеку добавлена мета-аннотация
@Repeatable.
Механизм ее действия такой же, как раньше: помечая ей интересующую аннотацию, необходимо указать параметром
@Repeatable аннотацию-контейнер. Нововведение заключается в синтаксисе использования: теперь набор аннотаций оборачивается в контейнер неявно.

Со стороны Reflection при чтении мета-информации тоже появилась возможность не оперировать контейнером явно – метод getAnnotationsByType при необходимости найдет и развернет этот контейнер.
Стойте! Если хотите шарить, или уже шарите в Java или Kotlin, то эти каналы однозначно для вас!

После их прочтения вы 100%
повысите свой уровень в несколько раз! Админ каналов Senior-разработчик, а значит ему можно доверять своё обучение:

1. Java Библиотека — Книги, статьи, фичи и советы. Сборная солянка для прогеров.

2. Kotlin Developer - самый топовый канал для котлин разработчика!

3. Книги для Java Программистов — Название говорит само за себя. Лучшие платные и бесплатные книги собраны в одном месте!

4. Java Guru — Хотите пройти собеседование и рубить по 300.000₽ в месяц? Всё возможно, но для этого надо прорешать не одну сотню задач и тестов — на этом канале как раз всё собрано.

5. Java News — А этот канал ежедневно вводит в курс дела и новостей любимого ЯП!

Подписывайтесь на все 5 каналов и станьте мега-программистом!
Просто ли стать Java-разработчиком? Нет. Всем ли подойдет IT? Тоже нет. Стоит ли попробовать? Да.

Если вы хотите стать востребованным разработчиком, вам нужно не просто научиться писать код. А в первую очередь сформировать инженерное мышление.

На этом построен процесс обучения на Хекслете. На профессии «Java-разработчик» вас ждет не только теория, но и много практики:

✔️ Сотни упражнений в браузере.
✔️ 5 проектов для портфолио на GitHub.
✔️ 150 тестовых заданий от наших партнёров.
✔️ Вебинары, сессии лайвкодинга с наставником 1-2 раза в неделю.

Сделайте шаг к карьере IT-специалиста уже сегодня! Переходите по ссылке выше и начните обучение!

🎁 Пройдите первые 10 бесплатных уроков из профессии и получите дополнительно скидку 10% на курс!
Перечислите принципы, которым вы следуете в многопоточном программировании?

При написании многопоточных программ следует придерживаться определённых правил, которые помогают обеспечить достойную производительность приложения в сочетании с удобной отладкой и простотой дальнейшей поддержки кода.

• Всегда давайте значимые имена своим потокам. Процесс отладки, нахождения ошибок или отслеживание исключения в многопоточном коде – довольно сложная задача. OrderProcessor, QuoteProcessor или TradeProcessor намного информативнее, чем Thread1, Thread2 и Thread3. Имя должно отражать задачу, выполняемую данным потоком.
• Избегайте блокировок или старайтесь уменьшить масштабы синхронизации. Блокировка затратна, а переключение контекста ещё более ресурсоёмко. Пытайтесь избегать синхронизации и блокировки насколько это возможно, и организуйте критическую секцию в минимально необходимом объёме. Поэтому синхронизированный блок всегда предпочительней синхронизированного метода, дополнительно наделяя возможностью абсолютного контроля над масштабом блокировки.
• Обрабатывайте прерывание потока с особой тщательностью. Нет ничего хуже оставшегося заблокированным ресурса или системы в неконстистентном, по причине неподтверждённой транзакции, состоянии.
• Помните об обработке исключений. Выброшенные InterruptedException должны быть адекватно обработаны, а не просто подавлены. Так же не стоит пренебрегать Thread.UncaughtExceptionHandler. При использовании пула потоков необходимо помнить, что он зачастую просто «проглатывает» исключения. Так, если вы отправили на выполнение Runnable нужно обязательно поместить код выполнения задачи внутрь блока try-catch. Если в очередь пула помещается Callable, необходимо удостоверится, что результат выполнения всегда изымается помощью блокирующего get(), чтобы в случае возникновения существовала возможнотсь заново выбросить произошедшее исключение.
• Между синхронизаторами и wait() и notify() следует выбирать синхронизаторы. Во-первых, синхронизаторы, типа CountDownLatch, Semaphore, CyclicBarrier или Exchanger упрощают написание кода. Очень сложно реализовывать комплексный управляющий поток, используя wait() и notify(). Во-вторых, эти классы написаны и поддерживаются настоящими мастерами своего дела и есть шанс, что в последующих версиях JDK они будут оптимизированы изнутри или заменены более производительной внешней реализацией.
• Почти всегда использование Concurrent сollection выгоднее использования Synchronized сollection, т.к. первые более современны (используют все доступные на момент их написания новшества языка) и масштабируемы, чем их синхронизированые аналоги.
#Вопросы_с_собеседования

🎙️ В чем различия между массивами и ArrayList в Java?

Ответ на картинке.
Почему не рекомендуется использовать метод Thread.stop()?

При принудительной остановке (приостановке) потока, stop() прерывает поток в недетерменированном месте выполнения, в результате становится совершенно непонятно, что делать с принадлежащими ему ресурсами. Поток может открыть сетевое соединение - что в таком случае делать с данными, которые еще не вычитаны? Где гарантия, что после дальнейшего запуска потока (в случае приостановки) он сможет их дочитать? Если поток блокировал разделяемый ресурс, то как снять эту блокировку и не переведёт ли принудительное снятие к нарушению консистентности системы? То же самое можно расширить и на случай соединения с базой данных: если поток остановят посередине транзакции, то кто ее будет закрывать? Кто и как будет разблокировать ресурсы?

👉@BookJava
🔔 Погрузитесь в тестирование с первого занятия на курсе “Автоматизация тестирования на Java”

Тема открытого занятия курса: «Разрабатываем первый автотест Java/Selenide» вместе с ребятами из школы автоматизации тестирования QA.GURU

🗓 Когда?
23-го марта в 20:00 МСК.

Что будет на занятии?
▫️Для новичков:
— Разработаем ваш первый автотест на поиск в Google
—Расскажем о рынке QA. Кто, кому, за что и сколько платит?
— Все участники получат домашнее задание, а мы проверим его.
▫️Для опытных:
— Расскажем про актуальный фреймворк на Java
— Покажем боевой проект с полной инфраструктурой (Web, API)
— Сессия вопросов и ответов с QA Lead

➡️ Занятие бесплатное — для участия вступайте в чат @qa_guru_chat или регистрируйтесь на сайте - https://clck.ru/33nYPR

qa.guru
Школа инженеров по автоматизации тестирования
Media is too big
VIEW IN TELEGRAM
Рисуем звук. Почувствуй себя нейросетью. Java, Guice

Сегодня java, guice и другие - помогут нам записать звук в представление чуть более непонятное чем эквалайзер (по крайней мере для меня). Вы при желании можете записать что-то другое.

00:00 Demo
01:34 Under the hood
02:44 Quickstart Archetype
04:28 BytesFetcher interface
05:32 AudioBytesFetcher
15:00 ImageDrawService
27:44 Guice module
28:51 App
34:40 Start
35:36 Success
36:23 Result

GitHub

источник

👉@BookJava
10 популярных библиотек для модульного и интеграционного тестирования Java

В этом посте мы представим 10 самых популярных библиотек для модульного и интеграционного тестирования Java, выделив их ключевые функции.

https://www.javacodegeeks.com/2023/03/10-popular-libraries-for-java-unit-and-integration-testing.html
This media is not supported in your browser
VIEW IN TELEGRAM
Тут вакансия для Java-разработчиков от подписчиков — ребят из Финтеха Яндекса. Обещает давать интересные задачи, уважать и баловать. Стоит присмотреться 👀

Работать нужно с сервисами, которые уже заслужили доверие миллионов и продолжают активно развиваться. Java-разработчик будет заниматься продуктовым движком, бизнес-логикой и инфраструктурой. Для этого пригодятся знания Kotlin, Spring Boot, Kubernetes, Grafana + Prometheus, YDB, PostgreSQL, ClickHouse и Kafka.

Финтех Яндекса — молодой сервис, где не любят бюрократию и сложные процессы. Здесь легко придумывать новое, менять готовое, да хоть сразу предлагать идеи CEO (если получится его поймать). Работать можно и из дома, и из офиса в Москве или Белграде.

Всяческие корпоративные блага прилагаются. Подробности на сайте, и там же можно ответить на один вопрос — и сразу попасть в Телеграм с рекрутёром
Spring Data JPA: проекции в запросах

Вероятно, первое, что приходит вам на ум, когда вы реализуете запрос с помощью Spring Data JPA — это проекции. Это связано с тем фактом, что проекции определяют атрибуты сущности и столбцы базы данных, возвращаемые вашим запросом. А возможность выбирать нужные столбцы очень важна для вашей бизнес-логики. Также это имеет решающее значение для производительности вашего приложения и поддерживаемости вашего кода. Вы можете (и должны) выбрать такую проекцию, которая минимизирует накладные расходы и предоставляет данные в наиболее удобной для использования форме.

Читать статью
Привет! На связи Podlodka Crew — организатор IT-конференций, родившихся из известного подкаста!

Что важно уметь для построения микросервисной архитектуры? Профайлить, держать код в порядке, придерживаться принципов DDD и SOLID, создавать грамотный API и не использовать антипаттернов.

Это и многое другое разберём во втором сезоне Podlodka Java Crew, который стартует 20 марта.

Вместе с экспертами из Yandex Cloud, Tinkoff, Точка, Альфа-банк, СберМаркет, Qiwi, Huawei и других компаний:

*️⃣ Узнаем, возможно ли построить чистую архитектуру и добиться порядка в коде, не построив распределённый монолит вместо микросервисной архитектуры;
*️⃣ Поучаствуем в круглом столе по монолитам, микросервисам, гибридной архитектуре;
*️⃣ Научимся проектировать микросервисную архитектуру, разберёмся, что такое eventual consistency и как сделать грамотный API;
*️⃣ Обсудим 10 популярных антипаттернов и узнаем, как их исправить.

Это не все темы: расписание уже на сайте: https://podlodka.io/javacrew! Поспеши забрать свой билет 😉
#вакансия #удалённо #job #remote #parttime #преподаватель #Java

Компания: мы в OTUS занимаемся обучением людей для повышения качества их жизни. 5 лет специализируемся на курсах для IT-специалистов разного уровня: от junior до senior. У нас более 130 авторских курсов.

Вакансия: преподаватель онлайн-курса на английском Java Developer.Professional

Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.

Локация: удаленно; сами определяете нагрузку и выбираете, на какие темы преподавать. Занятия проходят в вечернее время.

Вознаграждение:
Ставка за 1 урок (полтора часа) – от 80 до 120 евро.
Есть дополнительные активности на Ваше усмотрение, они оплачиваются отдельно.

У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.

Вы научитесь:
публично выступать и работать с аудиторией;
давать обратную связь;
структурировать свои знания.

И сможете:
🎁 проходить наши курсы со скидкой;
💪 набирать себе команду из лучших студентов;
💸 совмещать с текущей фулл-тайм загрузкой.

Хотите узнать больше? @anna_phoenix7
👩‍💻 Прекрасный и ужасный ООП в Java

В программировании на ООП-языках сложились определенные догмы о качестве. Некоторые противоречат друг другу, а некоторые по-разному трактуются разными авторами. Денис еще больше усомнился в непоколебимости этих догм после просмотра выступлений Егора Бугаенко на JPoint и Joker. Часть идей кажутся логичными, но на первый взгляд недостижимыми в типовых проектах.

Спикер
рассмотрит:
1. Некоторые противоречия догм в ООП.
2. Отличия ООП Джеймса Гослинга (James Gosling) в Java от ООП Алана Кея (Alan Kay).
3. Рассуждения о «серебряной пуле».
Преподаватель онлайн-курса на английском  Java Developer.Professional.
#удаленка
ЗП: от 80 до 120 € за урок
Компания: OTUS

Обязанности:
- Проведение занятия, используя презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.
- Дополнительные активности на Ваше усмотрение, они оплачиваются отдельно.

Откликнуться: @anna_phoenix7
Java 9.0 to 17.0 Cookbook

Автор:
Tejaswini Jog
Год издания: 2022

#java #english

Скачать книгу
Полезные и неизвестные библиотеки Java

Из этой статьи вы узнаете о некоторых не очень известных, но полезных библиотеках Java.

Сегодня мы сосредоточимся на библиотеках Java. Обычно мы используем в своих проектах несколько внешних библиотек — даже если не включаем их напрямую. Например, Spring Boot поставляется с определенным набором зависимостей, включенным стартерами. Если мы включаем, например, spring-boot-starter-test, то одновременно мы включаем такие библиотеки, как mockito, junit-jupiter или hamcrest. Конечно, это известные библиотеки для сообщества.

Читать статью
Какой результат будет получен после компиляции и выполнения данного кода?
Anonymous Quiz
0%
a test A
0%
a test B
0%
b test A
0%
b test B
100%
b test A test B
0%
Ошибка выполнения
0%
Ошибка компиляции
22 марта в 19:00 по МСК пройдет бесплатный вебинар «Spring. Ошибки и решения».

Что будет на трансляции:
- Spring Initz, шаблон приложения
- Архитектура базового микросервиса
- ControllerAdvice — обработка ошибок в контроллерах
- JPA генерация

Ведущий: Сергей Полухин, Senior Java Developer

🚀 Бесплатная регистрация: https://clck.ru/33NKYF