10986
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
Дорогие друзья!
Редакция канала @bookjava поздравляет вас с праздником!!!
👉@BookJava
Java
Утечка памяти java за 6 минут
Тестирование на java (junit, mockito)
источник
👉 @BookJava
Java Pro Tips: Редкие трюки для повышения эффективности разработки
В этой статье мы рассмотрим некоторые редкие и мощные советы и приемы, которые помогут вам раскрыть весь потенциал Java и создать элегантный и эффективный код.
От функциональных интерфейсов и ссылок на методы до потокового API и необязательных классов - мы рассмотрим некоторые расширенные возможности Java, которые часто упускаются из виду, но могут значительно улучшить ваш опыт программирования.
Итак, давайте погрузимся в работу и раскроем всю мощь Java!
https://blog.devgenius.io/java-pro-tips-rare-tricks-to-supercharge-your-programming-d4290c100d56
👉 @BookJava
🔥 Ещё одна часть бесплатного открытого урока для разработчиков на Spring Framework
📢📢 13 сентября в 20:00 мск на открытом уроке «Основы Spring Cloud» продолжим разбираться со Spring Cloud.
🟠Во второй части будут рассмотрены такие функции как сбор метрик, трассировка запросов и их визуализация, а также Spring Cloud Circuit Breaker.
Урок проходит в рамках курса «Разработчик на Spring Framework», это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени! В дальнейшем возможно приобретение курса в рассрочку.
👉 Регистрируйтесь прямо сейчас и ставьте событие в календарь, чтобы ничего не пропустить!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www. otus.ru
10 популярных библиотек для модульного и интеграционного тестирования Java
Юнит-тестирование и интеграционное тестирование в Java являются важными составляющими процесса разработки программного обеспечения.
Юнит-тестирование подразумевает тестирование отдельных блоков или компонентов кода в изоляции. Для этого обычно используется фреймворк тестирования, например JUnit или TestNG, и пишутся тестовые примеры, которые проверяют код и убеждаются в том, что его поведение соответствует ожиданиям. Модульные тесты должны быть быстрыми, повторяемыми и не зависеть от внешних зависимостей.
https://www.javacodegeeks.com/2023/03/10-popular-libraries-for-java-unit-and-integration-testing.html
👉@BookJava
Почему WebAssembly плохо годится для Java
Как разработчик TeaVM, компилятора байт-кода JVM в JavaScript и WebAssembly, я часто рекомендую пользователям, почему-то жаждущим сгенерировать WebAssembly, начать с JavaScript. Если честно, бэкэнд WebAssembly я очень давно не развиваю, не реализую в нём недостающих фич и не фикшу баги. Меня спрашивают: а почему так? Обычно, я просто игнорирую подобные вопросы, потому что в двух предложениях ответить на них невозможно, а для того, чтобы писать больше предложений, у меня нет времени. Обычно если я встречаю чьи-то попытки объяснить, чем WebAssembly плох для реализации JVM (а так же, CLR, JavaScript и прочих динамических сред), то они сводятся к следующему: "Java (.NET, JavaScript, ваш вариант) — это управляемый язык со сборкой мусора и исключениями, так что приходится тащить с собой гигантский рантайм". Что же, на самом деле, ситуация несколько сложнее, а размер рантайма вовсе не такой страшный и не является основным источником бед.
https://habr.com/ru/articles/757182/
👉@BookJava
Обучение Java-разработке с постоплатой и гарантированное трудоустройство! Учись сейчас – плати, когда устроишься на работу.
❗Старт нового потока по Java от школы IT Mentor уже в сентябре. Срок обучения 6-8 месяцев.
Ворвись в сферу высокооплачиваемого IT с поддержкой в закрытом комьюнити профессионалов-коллег в течение 18 месяцев.
👉 Записывайся на курс
Выпускники нашей школы уже на старте зарабатывают от 150 тыс.руб. Сможешь и ты!
Почему тебе точно нужно в школу IT Mentor?
✔ Только актуальная инфа и востребованный стек текхнологий: Java Core, JDBC, HIBERNATE, SPRING (Core, MVC, Security), SPRING BOOT, GIT (GITHUB, GITLAB), MAVEN
✔ Индивидуальная программа, заточенная под твой уровень знаний
✔ Контроль знаний с обратной связью менторов
✔ Работа на реальном проекте – при выпуске готовый кейс
✔ Поддержка опытных менторов позволит подготовиться к собеседованиям и составить твое CVL, проведение тестовых собеседований - быть уверенным в результате.
✔ Закрытое комьюнити с коллегами и чаты помогут оставаться в тренде.
Стань частью профессионального IT-сообщества! А если хорошо знаешь английский, вообще nice 🔥! Для тебя есть опция - трудоустройство в иностранную компанию и возможность релокации зарубеж.
Кстати, если вообще решишь не работать, а чилить на диване 24/7 и не устроишься в IT - вообще ничего не должен! Этот пункт мы внесли в договор 💸 Поэтому ты вообще ничего не теряешь.
👉 Записывайся на курс
Мест осталось мало!
Продвинутая Java
Динамический массив (ArrayList) - Введение
Динамический массив (ArrayList) - Как устроен?
Введение в многопоточность в Java
Ключевое слово volatile
Введение в тестирование. Модульное (Unit) тестирование.
источник
👉@BookJava
Java: перспективы, тренды и почему новичкам стоит его знать
Java – один из самых популярных и востребованных языков программирования в мире. Он используется в веб-разработке, разработке мобильных приложений, научных вычислениях и многих других областях. Несмотря на свою долгую историю, Java продолжает развиваться и оставаться актуальным инструментом для разработчиков. В этой статье в блоге ЛАНИТ мы собрали мнения ведущих экспертов в области Java из Artezio, Booking.com, Axiom JDK и др. Они обсуждают актуальные вопросы, связанные с использованием Java в современной разработке, дают советы новичкам и делятся своими мыслями о будущем этого языка программирования.
https://habr.com/ru/companies/lanit/articles/742100/
👉@BookJava
Многопоточность
Как можно создать потоки в Java?
Как устроить Deadlock, а затем уйти от взаимной блокировки навсегда
Два самых полезных слова в многопоточности join() и Future
источник
👉@BookJava
Хотите переплюнуть профессиональных Java-разработчиков? Roadmap для изучения Java в 2023 году
Java — настолько популярный и развитый язык, что контента на любую связанную с ним тему хоть отбавляй. Будь то технические разборы, обзоры популярных библиотек с открытым исходным кодом, статьи о поиске работы Java-программистом, сравнение с другими языками — всего не перечесть. Поиск по слову «java» в гугле выдал мне около 1,56,00,00,000 (?) результатов.
sahin.sarkar.me/want-to-become-better-at-java-than-the-pros-follow-this-roadmap-89677b467449" rel="nofollow">https://medium.com/@sahin.sarkar.me/want-to-become-better-at-java-than-the-pros-follow-this-roadmap-89677b467449
👉@BookJava
Вопросы-ответы собеседования. Часть 2
Часть 1 /channel/BookJava/2311
Что такое статический блок инициализации? static инициализатор
Что такое статический вложенный класс? static nested class
Какие типы ссылок есть в Java? Что такое Strong, Soft, Weak, Phantom Reference?
Что такое Strong Reference? Как работает сильная ссылка?
Что такое Soft Reference? Как работает мягкая ссылка?
Что такое Weak Reference? Как работает слабая ссылка?
Что такое Phantom Reference? Как работает фантомная ссылка?
Чем отличается интерфейс от абстрактного класса?
Что такое String Pool? Как работает пул строк?
Что такое пул строк? Изучаем String Pool за 50 секунд!
источник
👉@BookJava
Заменят ли потоки данных циклы в Java?
Выпуск версии Java 8 стал знаменательным событием в истории Java. В нем были представлены потоки данных (англ. Streams) и лямбда-выражения, которые сейчас широко применяются. Если вы не знакомы с потоками данных или никогда не слышали о них, то ничего страшного. В большинстве случаев можно обойтись без них, задействуя циклы.
И зачем тогда, спрашивается, нужны потоки данных? Есть ли у них преимущества перед циклами? Могут ли они их заменить? В статье мы изучим соответствующий код, сравним производительность и посмотрим, смогут ли потоки данных стать полноценной заменой циклов.
https://betterprogramming.pub/can-streams-replace-loops-in-java-f56d4461743a
👉@BookJava
Готовы погрузиться в мир нереляционных DB? Тогда добро пожаловать на онлайн-курс «NoSQL» от OTUS!
📢📢 12 сентября в 20:00 (мск) мы приглашаем вас на бесплатный открытый урок, где автор курса - Евгений Аристов, архитектор высоконагруженных баз данных и инфраструктуры с 25-летним опытом в разработке, - расскажет вам о создании отказоустойчивых кластеров MongoDB.
На открытом уроке мы исследуем:
📌 Цели и задачи MongoDB;
📌 Концепцию кворума;
📌 Основные моменты установки и настройки кластера MongoDB.
Это уникальная возможность не только окунуться в тему MongoDB, но и познакомиться с форматом нашего курса.
👉 Пройдите тестирование для регистрации на открытый урок и проверьте свой уровень компетенций
Продолжить изучение тонкостей NoSQL вы сможете на самом курсе, который стартует уже в сентябре.
Оплата курса возможна в рассрочку. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Интересуетесь профессией программиста, но не разбираетесь ни в IT-терминах, ни в языках? Освойте разработку или тестирование с нуля на курсах Яндекс Практикума.
Без опыта в IT можно стать программистом, который пишет на Python, Java или С++; веб-разработчиком, мобильным разработчиком или тестировщиком.
Что вас ждёт во время учёбы:
— Интерактивный учебник с теорией и возможностью писать код в тренировочной программе.
— Собственные рабочие проекты: от чат-бота, сайта-отзовика до соцсети и других многофункциональных сервисов. Их можно положить в портфолио и показать на собеседовании.
— Наставники и код-ревьюеры – разработчики из Яндекса и других IT-компаний. Они объяснят сложные темы на вебинарах, проверят код, помогут улучшить проекты
— Специалисты карьерного центра, которые научат искать работу, составлять резюме, готовиться к собеседованиям и тестовым заданиям.
В конце пути — новая профессия и проекты, которыми можно гордиться. Наши выпускники берут проекты на фрилансе, устраиваются в стартапы и крупные компании — Яндекс, ВТБ, МТС, Перекрёсток, Playrix, Сбер и другие.
Пройдите первый бесплатный урок →
Глубокое погружение в Java Memory Model
В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.
👉 @BookJava
Как найти "мертвый" код в Java-сервисах
При создании решений код, который мы пишем, может прослужить много лет. При случайном просмотре устаревшего кода мы можем задаться вопросом: используется ли он до сих пор? Отсутствующая документация или устаревшие тесты не помогут нам ответить на этот вопрос. Если поспрашивать, то никто толком не знает. Давайте попробуем его удалить? А потом начинается хаос: выясняется, что она все еще используется для поддержки некоторых старых пользователей, на случай непредвиденных обстоятельств, или для той забытой интеграции, которую все еще используют.
Если код действительно больше не используется, то зачастую это происходит по историческим причинам. Возможно, сценарии использования были заменены новыми функциональными возможностями или устарели, а код забыли удалить. В случаях, когда исследовать "мертвый" код не так уж и просто, как повысить уверенность?
https://blog.picnic.nl/how-to-find-dead-code-in-your-java-services-d167c8f22838
👉@BookJava
Java Graphics2D Game
источник
👉@BookJava
Все что вам нужно знать о таймаутах
Никто не любит ждать и мы в Zalando не исключение. Мы не любим когда наши клиенты долго ждут доставку, мы не любим когда наши клиенты долго ждут оформления заказа и мы не любим медленные микросервисы. В этой статье мы говорим о том как установить оптимальное значение таймаутов в микросервисной архитектуре, чтобы достичь максимальной производительности и отказоустойчивости.
Rus https://habr.com/ru/articles/755750/
Eng https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html
👉@BookJava
Пишем плагин для IntelliJ IDEA. Ускоряем написание тестов на DTO
Кто я такой
В Java я недавно. Работаю Java-разработчиком около года при общем 10-летнем стаже в АльфаСтрахование. Этому году предшествовали годы разработки на ABAP и полгода обучения на Javarush.
https://habr.com/ru/company/alfastrah/blog/706314/
👉@BookJava
Автоматически ищем техдолг с помощью RefactorFirst
Недавно вышла новая версия библиотеки RefactorFirst 0.4.0, которая позволяет определять и визуализировать технический долг. С этой информацией можно пойти к своему тимлиду или продукт-оунеру и выбить время на рефакторинг, имея под руками железные доказательства.
Она ищет в Java-коде Божественные Классы и классы с очень высоким уровнем связности, которые следовало бы отрефакторить. Для этого используются правила God Class Rule и Coupling Between Objects Rule из опенсорсного коданализатора PMD.
Коротко опишу, что это такое, и как этим пользоваться.
https://habr.com/ru/companies/bar/articles/746574/
👉@BookJava
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Что такое «анонимные классы»? Где они применяются?
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.
Анонимные классы имеют несколько ограничений:
• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.
Анонимные классы обычно применяются для:
• создания объекта функции (function object), например, реализация интерфейса Comparator;
• создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
• в статическом методе генерации;
• инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.
👉@BookJava
JRE – Java Runtime Environment, Java-окружение времени выполнения. Это набор всего необходимого чтобы запустить скомпилированную Java-программу. Окружение состоит из виртуальной машины Java (JVM), библиотеки классов (Java Class Library), консольной команды java и прочей инфраструктуры. Тем не менее, JRE не достаточно чтобы создавать новые программы.
JDK – Java Development Kit, набор Java-разработчика. Это полнофункциональный SDK для Java. JDK включает в себя JRE, но кроме того содержит компилятор (javac) и другие инструменты разработки, такие как javadoc и jdb. С помощью JDK можно создавать и компилировать программы.
В большинстве случаев, если вам нужно только запускать Java программы, вы устанавливаете только JRE, если же вы планируете программировать на Java, вместо этого вам необходим JDK.
https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre/1906455#1906455
👉@BookJava
Ещё раз о пропертях или откуда что берётся
О чём вообще речь?
Всем привет! В данной статье речь пойдёт о настраиваемых параметрах конфигурации Spring приложений. Когда я только начал изучать Spring, естественно, одним из источников знаний были готовые примеры, проекты-образцы. И меня жутко бесило, что какие-то нужные для работы приложения значения появлялись «ниоткуда». К примеру, автор какого-нибудь туториала предлагал для проверки только что созданного учебного приложения зайти на localhost по порту 8088. Откуда берётся 8088? Почему не 8089? Оказалось, что для таких настраиваемых параметров есть специальные файлы.
https://habr.com/ru/articles/740802/
👉@BookJava
Совет на остаток лета 2023 год: углубитесь в изучение Java.
Тот, кто разбирается в тонкостях Java — сможет что угодно и сорвёт куш.
А если вы хотите терять последние недели лета на бесполезные материалы и гайды — читайте канал: @javatg
Там просто и доступно объясняют какие шаблоны проектирования заставят ваш код летать, почему следует избегать использования исключений в управлении потоками, какие фишки Java Serialization API не знают 90% разработчиков.
Подписывайтесь, потом сами себе спасибо скажете: @javatg
Каждый разработчик ежедневно сталкивается с новыми челенджами, один из них — отказоустойчивость системы.
Поработаем над темой вместе?
Команда Яндекс Такси и ведущие специалисты IT отрасли делятся своим опытом. Регистрируйтесь сейчас и используйте в работе лучшие практики.
2 сентября. «Москва-Сити», башня «Око», с онлайн-трансляцией. Бесплатно
Подробнее