java_per_month | Unsorted

Telegram-канал java_per_month - Java Learning

13937

Обучающий канал по Java Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6 По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Java_per_month

Subscribe to a channel

Java Learning

Тестовое собеседование на Middle Java-разработчика в среду

Заходи 9 октября, в среду в 19:00 по мск на открытое онлайн-собеседование от ШОРТКАТ, чтобы узнать:

● Чего ждут от кандидатов на Middle позиции в Java-разработке
● Какие вопросы задают на интервью и зачем
● Как подготовиться к собесу, чтобы получить оффер

Интервью проведёт Роман Половинцев, ex. TeamLead в Сбере.

Чтобы записаться на эфир, переходи в бот → @shortcut_sh_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2Vtzqv9YAqY

Читать полностью…

Java Learning

➡️ Использование Scoped Values для безопасной передачи данных в потоки

Scoped Values — новая функциональность в Java 21, позволяющая безопасно и эффективно передавать неизменяемые данные между потоками и методами. Они предоставляют более простой и безопасный API по сравнению с ThreadLocal, уменьшая риск утечек памяти и ошибок, связанных с потоками.

🗣 Scoped Values упрощают управление контекстом приложения и повышают надежность многопоточных программ.

Java Learning 👩‍💻

Читать полностью…

Java Learning

❓ Вопрос на собеседовании

Что такое "false sharing" в многопоточном Java-приложении и как его можно избежать?

Ответ ⬇️
"False sharing" — это ситуация, когда несколько потоков обновляют разные переменные, находящиеся в одном кэше процессора. Это приводит к снижению производительности из-за необходимости синхронизации кэшей. Чтобы избежать "false sharing", можно использовать аннотацию @Contended (с включенной опцией JVM) или добавлять дополнительные поля для выравнивания.

🗣 Пример:

public class Main {
private static class Counter {
// Добавляем дополнительные поля для выравнивания
private long p1, p2, p3, p4, p5, p6, p7;
public volatile long count = 0;
private long q1, q2, q3, q4, q5, q6, q7;
}

public static void main(String[] args) throws InterruptedException {
Counter counter = new Counter();
Thread thread1 = new Thread(() -> {
for (int i = 0; i < 1_000_000; i++) {
counter.count++;
}
});

Thread thread2 = new Thread(() -> {
for (int i = 0; i < 1_000_000; i++) {
counter.count++;
}
});

thread1.start();
thread2.start();

thread1.join();
thread2.join();

System.out.println("Итоговое значение: " + counter.count);
}
}

// Результат выполнения:
// Итоговое значение: 2000000


Java Learning 👩‍💻

Читать полностью…

Java Learning

👩‍💻 Открытый урок «Знакомство со Spring Cloud».

Как эффективно использовать самый популярный фреймворк в Java-мире для профессиональной разработки приложений?

📆 Узнайте на открытом вебинаре 10 октября в 20:00 мск.

Где мы разберем:

- что такое Spring Cloud и для чего он нужен;
- из каких основных компонентов состоит Spring Cloud;
- как использовать ключевые функции Spring Cloud для разработки.

Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.

Встречаемся в преддверии старта курса «Java Developer. Professional». Все участники вебинара получат специальную цену на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3DgE26

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Java Learning

🔒 6895 ГБ платного контента для программистов выложили в Telegram

Тонны курсов, уроков и видео теперь в открытом доступе:

🖥 Python — 724 ГБ

🖥 Frontend — 981 ГБ

🖥 Backend — 817 ГБ

👩‍💻 Все языки — 4373 ГБ

Успей подать заявку, пока не удалили

Читать полностью…

Java Learning

Шпаргалка по основам Java с примерами кода.

В ней есть всё, что может пригодиться начинающему разработчику.

Оригинал в хорошем качестве можно взять тут

Java Learning 👩‍💻

Читать полностью…

Java Learning

Виртуальные потоки Java 21 — чувак, где мой lock?

Смотреть статью

Java Learning 👩‍💻

Читать полностью…

Java Learning

➡️ Использование библиотеки Jodd для упрощения повседневных задач в Java

Jodd — это набор утилит и инструментов для Java, который содержит множество полезных компонентов для работы с JSON, HTTP, Email, файловой системой и многим другим. В отличие от узкоспециализированных библиотек, Jodd предоставляет универсальные и лёгкие в использовании утилиты для повседневных задач.

• Jodd — отличный выбор, если вам нужен набор небольших и эффективных инструментов для решения повседневных проблем в Java-программировании.

🔗 Ссылочка на доку

Java Learning 👩‍💻

Читать полностью…

Java Learning

Хотите узнать, чем Clojure выделяется среди других бэкендовых языков и что он может вам предложить?

Ждем вас на открытом вебинаре 3 октября в 20:00 мск, где мы разберем:
- с какими задачами сталкиваются разработчики Clojure;
- основные особенности и преимущества Clojure по сравнению с другими языками;
- какие возможности и перспективы предлагает Clojure для разработчиков.

Встречаемся в преддверии старта курса «Clojure Developer». Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/L4aA/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Java Learning

⌛ Что будет выведено при выполнении кода?

Java Learning 👩‍💻

Читать полностью…

Java Learning

#вопросы_с_собеседований
🤔 Что будет, если в static блоке кода возникнет исключение?

Если в static блоке кода возникнет исключение, то это приведет к ошибке инициализации класса.
Static блок выполняется при загрузке класса, и любые исключения в нем приведут к сбою и невозможности загрузить класс.

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


Java Learning 👩‍💻

Читать полностью…

Java Learning

Функциональные коллекции в Java с Vavr: обзор и применение

Смотреть статью

Читать полностью…

Java Learning

➡️ Использование метода formatted для более простого форматирования строк (Java 15+)

Метод formatted — это новая функция, появившаяся в Java 15, которая позволяет легко форматировать строки. Этот метод является лаконичной и более читабельной альтернативой методу String.format(). Теперь вы можете напрямую вызывать метод форматирования на строковом литерале или объекте String.

• formatted упрощает форматирование строк, делая код более компактным и понятным.

Java Learning 👩‍💻

Читать полностью…

Java Learning

➡️ Использование класса OptionalInt для работы с необязательными числовыми значениями

OptionalInt — это специальный контейнер, введённый в Java 8, который позволяет работать с числовыми значениями, которые могут отсутствовать. Он полезен в ситуациях, когда метод возвращает необязательное числовое значение, избегая использования null и уменьшая вероятность возникновения ошибок.

• OptionalInt предоставляет методы для проверки наличия значения, его безопасного извлечения и задания дефолтных значений, если значение отсутствует.

Java Learning 👩‍💻

Читать полностью…

Java Learning

👩‍💻 Курс для Java-разработчиков, которые хотят профессионального роста.

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

Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса

➡️ ПРОЙТИ ТЕСТ: https://clck.ru/3DYcu3

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Java Learning

➡️ Использование библиотеки Jsoup для парсинга HTML в Java

Jsoup позволяет загружать HTML-страницы, разбирать их и выбирать элементы с использованием CSS-селекторов, а также безопасно изменять и генерировать HTML-код. Это отличный инструмент для задач парсинга веб-страниц, обработки HTML-контента и веб-скрапинга.

• Jsoup — идеальный выбор для тех, кому нужно быстро и безопасно работать с HTML в Java.

🔗 Ссылочка на доку

Java Learning 👩‍💻

Читать полностью…

Java Learning

➡️ Использование библиотеки Hutool для ускорения Java-разработки

Hutool — это универсальная библиотека Java с множеством утилит для работы с датами, файлами, HTTP-запросами, кэшированием и многим другим. Она разработана для облегчения повседневных задач и улучшения производительности.

• В отличие от других библиотек, Hutool имеет богатый набор функций, интегрированных в единую библиотеку.

• Hutool — отличный выбор, если вы ищете многофункциональный инструмент для решения повседневных задач в Java.

🔗 Ссылочка на доку

Java Learning 👩‍💻

Читать полностью…

Java Learning

#Вопросы_с_собеседования

🎙️ Какие два класса не наследуются от Object?

Ответ:
Не ведитесь на провокации, нет таких классов: все классы прямо или через предков наследуются от класса Object!

Java Learning 👩‍💻

Читать полностью…

Java Learning

➡️ Использование ConcurrentLinkedDeque для многопоточного доступа к двухсторонней очереди

ConcurrentLinkedDeque — это неблокирующая двухсторонняя очередь, которая обеспечивает высокую производительность в многопоточных средах. Она позволяет добавлять и удалять элементы с обоих концов, при этом сохраняя потокобезопасность.

🗣 ConcurrentLinkedDeque — отличный выбор для задач, требующих гибкого доступа к элементам и безопасной работы в многопоточной среде.

Java Learning 👩‍💻

Читать полностью…

Java Learning

➡️ Использование ReentrantReadWriteLock для оптимизации многопоточной работы с общими ресурсами

ReentrantReadWriteLock — это механизм синхронизации из пакета java.util.concurrent.locks, который позволяет разделить блокировки на чтение и запись. Благодаря этому множество потоков могут одновременно читать данные, но запись блокирует все другие операции. Это оптимизирует доступ к ресурсу, когда операции чтения преобладают над операциями записи.

🗣 ReentrantReadWriteLock — отличный выбор для сценариев, когда многопоточная работа преимущественно связана с чтением данных.

Java Learning 👩‍💻

Читать полностью…

Java Learning

👩‍💻 Программирование теперь в Telegram!

Вот 10 обучающих каналов по самым востребованным направлениям в IT.

Выбирай своё направление:

👩‍💻 Python: @python_ready
👩‍💻 Java: @java_ready
👩‍💻 Backend: @backend_ready
👩‍💻 Frontend: @code_ready
👩‍💻 Весь IT: @roadmap_ready
👩‍💻 C#: @csharp_ready
👩‍💻 C/C++: @cpp_ready
🖥 Базы Данных & SQL: @sql_ready
📖 IT Архив: @archive_ready
🖥 Design: @time_design

📌 Ресурсы, гайды, шпаргалки, книги и задачи для каждого языка программирования.

Читать полностью…

Java Learning

Используйте умные ссылки – создавайте и настраивайте сервисы для динамического управления редиректами
Как именно, спросите вы?

А очень просто: приходите на открытый урок OTUS «Проектирование сервиса умных ссылок»

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

Вебинар проведёт действующий директор компании по разработке ПО, в прошлом – профессиональный разработчик на C++

👨‍💻🛠👨🏻‍💻 Будет интересно: бэкенд-разработчикам, фулстек-разработчикам, техническим архитекторам

📅 8 октября, 20:00
🆓 Бесплатно. Урок в рамках старта курса «Microservice Architecture»

🔴 Записаться на открытый урок: https://clck.ru/3DeWDG

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Java Learning

➡️ Использование библиотеки Flyweight для кэширования объектов в Java

Flyweight — это структурный паттерн проектирования, который позволяет кэшировать и переиспользовать объекты для экономии памяти. Часто применяется в библиотеках, работающих с графикой или большими объемами данных, чтобы оптимизировать потребление ресурсов.

🗣 Flyweight подойдет, когда нужно работать с большим количеством мелких объектов.

Java Learning 👩‍💻

Читать полностью…

Java Learning

#Вопросы_с_собеседования

❓Как одной строчкой преобразовать ArrayList в HashSet?

Ответ на картинке.

Читать полностью…

Java Learning

💸 Вакансии для IT'шников
Выбери своё направление ⤵

1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift

Читать полностью…

Java Learning

Ха-ха

Java Learning 👩‍💻

Читать полностью…

Java Learning

Разбираем как решать задачи на LeetCode

✅ Примеры решений
✅ Пояснения

Выбери своё направление:

1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. C/C++
7. PHP
8. Kotlin
9. Swift

Читать полностью…

Java Learning

Подними свои скилы до небес! 🚀

Надоели скучные задачи по программированию? 💻

Время перейти на новый уровень!

🥇Приглашаем бекендеров и инженеров инфраструктуры на уникальный трехмесячный курс по системному дизайну и архитектуре высоконагруженных систем от Алексея Рыбака - главы разработки Bumble/Badoo с 20-летним опытом в highload проектировании.

В чем ценность данного курса?

🖥 Огненная практика с первых дней обучения на реальных кейсах и собственной инфраструктуре
🖥 Погружение «под капот» хайлоад систем, изучение паттернов и приемов масштабирования
🖥 Топовые фишки и знания по архитектуре проектов и системному дизайну больших проектов (1-100M DAU)
🖥 Живые сессии, брейнштормы, проектирование “у доски”

На выходе у вас появится реальный опыт:

✅ Проектирования сложных систем
✅ Нагрузочного тестирования своей инфраструктуры (выжмете 100К запросов)
✅ Планирования ресурсов для проектов с большим количеством пользователей
✅ Масштабирования IT-проектов
✅ Практический опыт работы с кластерами Redis, CockroachDB и шардированными PostgreSQL/MySQL
✅ И многое другое!

⚡️ Регистрируйся и погружайся в нескучный хайлоад

Реклама ИП Рыбак А. А. ИНН 771407709607

Читать полностью…

Java Learning

➡️ Использование библиотеки Reflections для работы с классами и методами

Reflections — это небольшая, но мощная библиотека для Java, которая позволяет сканировать классы, методы, поля и аннотации во время выполнения. С её помощью можно быстро находить компоненты по заданным критериям, например, все классы, реализующие определённый интерфейс, или все методы, помеченные определённой аннотацией.

• Reflections упрощает динамический анализ классов и может быть полезен при реализации системы плагинов, регистрации классов или поиске обработчиков событий.

🔗 Ссылочка на доку

Java Learning 👩‍💻

Читать полностью…

Java Learning

➡️ Tinylog — легковесная и простая библиотека логирования для Java

Tinylog — это минималистичная и быстрая библиотека логирования, которая имеет простой синтаксис и богатый набор возможностей, включая асинхронное логирование, конфигурацию через файлы и фильтрацию по уровням. Она идеально подходит для приложений, которым требуется базовое логирование с минимальными затратами ресурсов.

• Tinylog — отличный выбор для небольших проектов, где не нужны сложные системы логирования.

🔗 Ссылочка на доку

Java Learning 👩‍💻

Читать полностью…
Subscribe to a channel