Библиотека Java разработчика
10.8K subscribers
1.14K photos
564 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
Строковый метод equals()

Строковый метод equals() проверяет равенство двух строк в Java. equals() сравнивает содержимое каждой строки.
Если все символы совпадают, метод возвращает значение true. Если же какой-либо символ не совпадает – возвращает false.
Если же требуется сравнение без учета верхнего/нижнего регистров, можно воспользоваться .equalsIgnoreCase() .
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...].

class PowerOfTwo {
private AtomicReference<BigInteger> current = new AtomicReference<>(null);

BigInteger next() {
BigInteger recent, next;
do {
recent = current.get();
next = (recent == null) ? BigInteger.valueOf(1) : recent.shiftLeft(1);
} while (!current.compareAndSet(recent, next));
return next;
}
}
Jasypt: шифрование конфигурационных файлов spring-boot

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

Подробнее
👍4
Мы запускаем углубленный курс по Java для специалистов с опытом в промышленной разработке. Если вы работали с реляционными базами данных, Java фреймворками или хотите их освоить — добро пожаловать! 💫

Курс бесплатный и длится три месяца. Все занятия онлайн, так что можно проходить из любой точки России.

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

Чтобы попасть на курс, нужно отправить заявку и сдать вступительные экзамены до 23 февраля. Занятия начнутся в марте. Лучших приглашаем на интервью в одну из команд в штат.

Подробная программа и форма для заявок здесь: https://l.tinkoff.ru/fintech_jvm_2022
👍1👏1
Learn to Program with Kotlin
Автор: Tim Lavers (2021)

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

Чему вы научитесь

Изучать основы Kotlin с помощью IDE IntelliJ Java
Внедрять ООП с помощью Kotlin, а также модульное тестирование и рефакторинг кода с помощью серии проектов, связанных с текстом
Использовать функциональное программирование на Kotlin, создав библиотеку для обработки изображений.
Напишите программу для поиска и чтения знаков скорости на фотографиях.

Скачать книгу
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Освойте бэкенд-разработку на Java за 10 месяцев!
Профессия для тех, кто настроен серьезно: https://bit.ly/32zzMyP

Научим:
✔️Писать код на Java, использовать фреймворки Javalin, Spring
✔️Применять принципы ООП, работать с базами данным, SQL
✔️Настраивать окружение: IDEA, Gradle/Maven, JDK
✔️Пользоваться командной строкой и Git

Поможем:
✔️Наработать практику — вы сделаете 5 проектов на GitHub
✔️Грамотно оформить резюме
✔️Подготовиться к собеседованиям

А еще порекомендуем в хорошие компании и познакомим с сообществом из 26 тысяч айтишников. Присоединяйтесь!
👍1
Java Programming
Автор: Joyce Farrell (2018)

Даже если вы начинающий программист, книга поможет вам быстро приступить к разработке полезных программ, при этом овладев основными принципами структурного и объектно-ориентированного программирования. Книга содержит уникальные, понятные для читателя объяснения и содержательные упражнения по программированию. Дополнительные цифровые учебные ресурсы в MindTap предоставляют интерактивные инструменты обучения, а также IDE (среда разработки) для отработки и развития ваших навыков.

Скачать книгу
Java-Cheat-Sheet.pdf
2.5 MB
Шпаргалка по Java (Cheat Sheet)
Так как строки в Java являются неизменными, то ваш пароль в виде обычного текста будет доступен в памяти, пока сборщик мусора не очистит её. Любое изменение приведет к созданию новой строки.

А вот в случае с char[], вы можете заменить любой его элемент нулем или пустым символом.
Оплачиваемая стажировка в IT от ЮниКредит Банка с возможностью попасть в штат компании.

Хочешь уже сейчас начать карьеру в IT, получать конкурентную зарплату и бесплатно обучаться у лучших экспертов компании в области работы с данными? Тогда регистрируйся на UniCredit IT Academy - оплачиваемую IT-стажировку для студентов 4-го курса бакалавриата, 1−2-го курса магистратуры и выпускников 2020−2021 годов. Здесь ищут специалистов технического, экономического, математического или IT-направления с базовыми знаниями SQL, английским уровня B1 и выше, готовых посвящать программе от 35 часов в неделю и живущих в Москве и Московской области.

Почему стоит пройти стажировку:
— Быстрый рост и возможность попасть в штат: за 10 месяцев ты станешь специалистом Chief Data Office: пройдешь путь от формирования задачи до ее реализации. А лучшие ученики академии перейдут в штат ЮниКредит Банка.
— Конкурентная зарплата с первого дня обучения. Твои знания конвертируются в деньги: чем выше успеваемость — тем выше оклад.
— Опыт от профи из индустрии: Chief Data Office ЮниКредит Банка и центр обучения SAS поделятся международной экспертизой. Авторская программа обучения от лидеров рынка по двум трекам: аналитика и разработка.
— Развитие новых навыков: Ты прокачаешь hard skills. — Углубишься в SQL, изучишь основы SAS и теорию DWH, а также soft skills — улучшишь навыки нетворкинга, личной эффективности и целеполагания.
— Знания и практика: тебя ждет интенсивное обучение в гибридном формате: и онлайн, и офлайн. Параллельно ты будешь применять полученные знания на практике.

Подавай заявку до 15 февраля включительно: https://clck.ru/asbkA
👍1
Мега подборка каналов для программистов 🎯

https://t.me/progjob Вакансии для программистов

Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (Админский юмор, фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/linux_sup Новости и информация из мира Linux
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/dev_ops_info Devops

Программирование, фронтенд, Биг дата, мобильная р-ка, книги 📌
https://t.me/game_devv GameDev: разработка игр
https://t.me/Angular_Vuejs Angular Vue js React
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/Frontend_now Все для фронтендеров
https://t.me/react_prog Все что связано с reactjs
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/developer_mobila Мобильная разработка
https://t.me/Welcome_Python Добро пожаловать в мир Python
https://t.me/BookPython Библиотека Python разработчика
https://t.me/programmist_of Книги по программированию
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_sup Программирование на Java
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/imobile_dev Все по мобильной разработке: iOS, Android
https://t.me/database_group Все про базы данных
https://t.me/cloud_comp Облачные сервисы, вычисления и безопасность
https://t.me/bigdata_world Data Science, Big Data, Machine Learning

IT новости 📌
https://t.me/htech_news Новости HighTech
https://t.me/all_itnews IT новости на английском
https://t.me/gmorning_news Последнии новости из мира науки
https://t.me/youtips_tricks Технологические советы и хитрости

Шутки программистов 📌
https://t.me/dev_jokes Daily Dev Jokes
https://t.me/itumor ITumor | программисты шутят

SMM, Seo, Wordpress 📌
https://t.me/allsocial_news SMM / Советы, Новости, Лайфхаки
https://t.me/seo_go Новости по SEO продвижению сайтов
https://t.me/news_wordpress Канал о самой популярной CMS

Защита, взлом, безопасность 📌
https://t.me/crypto_security_lab Материалы по информационной безопасности
https://t.me/thehaking Канал о кибербезопасности
https://t.me/Hackme_news Новости из мира хакинга

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/goodw_design Статьи по Веб дизайну

Должен знать 📌
https://t.me/UchuEnglish Английский с нуля
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/crypto_moneygo Канал о крипте, новости, инсайды
https://t.me/bitkoinoff Нгвости криптовалют

VR, робототехника 📌
https://t.me/AR_VR_vision Компьютерное зрение, виртуальная реальность
https://t.me/robotics_scince Канал о Робототехнике и автоматизации


https://t.me/network_arch Network architecture and Administration
https://t.me/easy_program Программирование для новичков
https://t.me/testin_new Тестирование
https://t.me/IoTprog Интернет вещей
https://t.me/generalprog General programming
https://t.me/Hware_news Цифровые тенденции
👍2
Многопоточность. Класс CyclicBarrier

В многопоточном программировании часто случаются ситуации, когда поток должен находится в режиме ожидания в определенной точке приложения, пока остальные потоки не достигнут этой точки. Как только нужное количество потоков достигает точки ожидания, то приостановка выполнения потоков снимается и потоки могут вновь продолжить свою работу. На пример, если ряд потоков, каждый из которых выполняет часть общего вычисления и результат их работы должен быть объединен в общий результат. Объединить результат вычисления можно только в том случае, когда все потоки завершат свои маленькие вычисления. Поэтому потоки, которые первые завершили свою работы должны ожидать завершения работы оставшихся потоков. Для реализации описанного механизма в пакете java.util.concurrent предусмотрен класс CyclicBarrier (с версии 1.5).

Подробнее
👍4
В чём заключается различие между методами submit() и execute() у пула потоков?

Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.

execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.

submit() – перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.
Бесплатный онлайн-митап для Java-разработчиков — Luxoft TechFest №7 💻

🗓 10 февраля, 18:00

На следующей неделе Luxoft при поддержке JUG Ru Group проведет уже седьмой митап TechFest. Он будет посвящен Java: вас ждет три доклада от спикеров из Luxoft и Яндекса.

Программа:
– Сергей Владимиров, «Hibernate: избегать или научиться готовить».
– Дмитрий Подлесных, «Пора начать/остановиться писать тесты».
– Алексей Лапин, «Опыт работы в банке: мониторинг Apache Flink и доморощенный housekeeper».

А также вас ждут дискуссии после каждого доклада и розыгрыши призов: можно будет получить сертификаты на курсы Luxoft Training, билет на конференцию JPoint и фирменных уточек, как на конференциях JUG Ru Group 🙂

Подробности и регистрация на сайте: https://bit.ly/3ricKWx
Хитрые задачи по Java

Совсем недавно я сдал OCA Java SE 7 Programmer I. За время подготовки успел решить огромное количество задач и извлечь из них много тонких моментов языка. Самые интересные и ловкие — сохранял на будущее. И вот у меня накопилась небольшая личная коллекция, лучшую часть которой я здесь и опишу.

https://habr.com/ru/post/203796/
👍6👎2
Java 18. Что нового добавили, и почему вам это пригодится

Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.

Подробнее
👍2
Что будет выведено в консоль?
Java: есть ли жизнь на десктопе?

Привет! Я Виктор Барсуков, Java-разработчик в Lamoda. В этой статье я хочу рассказать о разработке десктопного Java-приложения, что из этого получилось и что можно было бы сделать иначе.

В 2019 году в России ввели обязательную маркировку ряда товаров. В связи с этим малому бизнесу пришлось покупать и настраивать дорогие по меркам МСП (то есть, малых и средних предпринимателей) программы и оборудование.

Подробнее
Как сделать ссылки на методы дружелюбными для отладки

В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.

Подробнее
👍4