Сюрпризы конкатенации в Java
Нашёл интересную статью на Хабре о неожиданном поведении, которое можно получить при конкатенации.
Уверен уже куча хитрожопых тимлидов добавила эту статью себе в закладки, чтобы потешить своё ЧСВ на собеседованиях. Так что, дорогие читатели, скорее изучайте материал и обломайте весь кайф таким людям :D
Кроме шуток, материал действительно познавательный и интересный:
#java
https://habr.com/ru/post/581576/
Нашёл интересную статью на Хабре о неожиданном поведении, которое можно получить при конкатенации.
Уверен уже куча хитрожопых тимлидов добавила эту статью себе в закладки, чтобы потешить своё ЧСВ на собеседованиях. Так что, дорогие читатели, скорее изучайте материал и обломайте весь кайф таким людям :D
Кроме шуток, материал действительно познавательный и интересный:
#java
https://habr.com/ru/post/581576/
Хабр
Сюрпризы конкатенации
Вопрос в стиле головоломок с offline-конференций: Что выведет этот код при запуске? import java.util.concurrent.atomic.AtomicInteger; public class Disturbed { public static void main(String... args)...
Ламповый стрим с общением и решением задач с leetcode!
Друзья, ровно год назад я начал вести блог и в честь этой замечательной даты хочу провести стрим, на котором решим несколько задачек с leetcode и пообщаемся на разные темы!
Буду рад всех видеть завтра (26 ноября) в 19:00 по ссылке ниже (не забудьте сохранить)! Давайте проведём вечер пятницы с пользой :)
#leetcode #java #programming #it #программирование
https://youtu.be/LbZHKpCSVSg
Друзья, ровно год назад я начал вести блог и в честь этой замечательной даты хочу провести стрим, на котором решим несколько задачек с leetcode и пообщаемся на разные темы!
Буду рад всех видеть завтра (26 ноября) в 19:00 по ссылке ниже (не забудьте сохранить)! Давайте проведём вечер пятницы с пользой :)
#leetcode #java #programming #it #программирование
https://youtu.be/LbZHKpCSVSg
Возможности Java — от Java 8 до Java 17
С момента появления в 1995 году до сегодняшнего дня в Java многое изменилось. Java 8 была революционным выпуском, вернувшим Java на пьедестал лучших языков программирования.
Рассмотрим большинство изменений в языке Java, которые произошли с Java 8 в 2014 году до сегодняшнего дня. Постараемся быть как можно более краткими по каждой функции. Намерение состоит в том, чтобы иметь ссылку на все новые фичи языка Java версий 8 - 17 включительно.
https://habr.com/ru/post/593243/
#java
С момента появления в 1995 году до сегодняшнего дня в Java многое изменилось. Java 8 была революционным выпуском, вернувшим Java на пьедестал лучших языков программирования.
Рассмотрим большинство изменений в языке Java, которые произошли с Java 8 в 2014 году до сегодняшнего дня. Постараемся быть как можно более краткими по каждой функции. Намерение состоит в том, чтобы иметь ссылку на все новые фичи языка Java версий 8 - 17 включительно.
https://habr.com/ru/post/593243/
#java
Хабр
Возможности Java — от Java 8 до Java 17
С момента появления в 1995 году до сегодняшнего дня в Java многое изменилось. Java 8 была революционным выпуском, вернувшим Java на пьедестал лучших языков программирования. Мы рассмотрим...
Micronaut
Микросервисная архитектура сейчас довольно популярна, появляются новые фреймворки, заточенные под данную архитектуру и один из них - Micronaut.
Основное отличие от Spring Boot в том что зависимости внедряются во время компиляции, а не во время выполнения, соответсвенно потребление памяти не находится в прямой зависимости от количества кода.
Так же из коробки поддерживается много интересных вещей: http-сервер Netty, работа с брокерами сообщений, балансировка, service discovery и многое другое.
Думаю в ближайшее время Micronaut будет встречаться всё чаще во многих проектах.
https://tproger.ru/blogs/micronaut-introduction/
#java #micronaut
Микросервисная архитектура сейчас довольно популярна, появляются новые фреймворки, заточенные под данную архитектуру и один из них - Micronaut.
Основное отличие от Spring Boot в том что зависимости внедряются во время компиляции, а не во время выполнения, соответсвенно потребление памяти не находится в прямой зависимости от количества кода.
Так же из коробки поддерживается много интересных вещей: http-сервер Netty, работа с брокерами сообщений, балансировка, service discovery и многое другое.
Думаю в ближайшее время Micronaut будет встречаться всё чаще во многих проектах.
https://tproger.ru/blogs/micronaut-introduction/
#java #micronaut
Tproger
Micronaut: фреймворк на JVM, который вы определённо полюбите
В статье рассмотрим альтернативу всем известному Spring Boot — фреймворк Micronaut, который уже «из коробки» предоставляет массу возможностей.
Паттерны проектирования (видео-курс)
Сегодня у меня важное событие, опубликован мой первый видео-курс на Udemy по паттернам проектирования и принципам разработки ПО. На разработку курса ушло большое количество времени и надеюсь данный курс поможет большому количеству людей на пути освоения профессии программиста!
Ссылка на курс со скидочным купоном для подписчиков:
https://www.udemy.com/course/design-patterns-in-java/?couponCode=14C5CD7573A7B258CBA8
#паттерны #java
Сегодня у меня важное событие, опубликован мой первый видео-курс на Udemy по паттернам проектирования и принципам разработки ПО. На разработку курса ушло большое количество времени и надеюсь данный курс поможет большому количеству людей на пути освоения профессии программиста!
Ссылка на курс со скидочным купоном для подписчиков:
https://www.udemy.com/course/design-patterns-in-java/?couponCode=14C5CD7573A7B258CBA8
#паттерны #java
Udemy
Free Design Patterns (software) Tutorial - Паттерны проектирования на Java (экспресс-курс)
Принципы разработки программного обеспечения и основные шаблоны проектирования с примерами на Java - Free Course
Паттерны проектирования (видео-курс)
Друзья, после долгого перерыва возвращаюсь с хорошей новостью: мой видео-курс по принципам разработки программного обеспечения и паттернам проектирования выложен в общий доступ и доступен всем желающим на YouTube и RuTube!
Курс в первую очередь подходит тем, кто уже изучил язык программирования Java и хочет углубить свои знания в области разработки приложений, а так же научиться выстраивать свой код таким образом, чтобы он был гибким, масштабируемым и легко поддерживаемым.
YouTube:
https://www.youtube.com/playlist?list=PL3uNE1P8ngt0l-3PU_v0K7yOWig2UfyZY
RuTube:
https://rutube.ru/plst/69335
Приятного просмотра!
#паттерны #java
Друзья, после долгого перерыва возвращаюсь с хорошей новостью: мой видео-курс по принципам разработки программного обеспечения и паттернам проектирования выложен в общий доступ и доступен всем желающим на YouTube и RuTube!
Курс в первую очередь подходит тем, кто уже изучил язык программирования Java и хочет углубить свои знания в области разработки приложений, а так же научиться выстраивать свой код таким образом, чтобы он был гибким, масштабируемым и легко поддерживаемым.
YouTube:
https://www.youtube.com/playlist?list=PL3uNE1P8ngt0l-3PU_v0K7yOWig2UfyZY
RuTube:
https://rutube.ru/plst/69335
Приятного просмотра!
#паттерны #java
YouTube
Паттерны проектирования на Java (экспресс-курс)
Share your videos with friends, family, and the world
Swagger
Здравствуйте друзья! Сегодня у нас речь пойдёт про Swagger - фреймворк для спецификации RESTful API.
Его фишка в том, что он дает возможность не только интерактивно просматривать спецификацию, но и отправлять запросы – так называемый Swagger UI. Также возможно сгенерировать непосредственно клиента или сервер по спецификации API Swagger, для этого понадобится Swagger Codegen.
Этот фреймворк очень активно применяется в большинстве проектов, так что если вы ещё с ним не знакомы, то вот отличная статья:
https://habr.com/ru/post/541592/
#java #swagger
Здравствуйте друзья! Сегодня у нас речь пойдёт про Swagger - фреймворк для спецификации RESTful API.
Его фишка в том, что он дает возможность не только интерактивно просматривать спецификацию, но и отправлять запросы – так называемый Swagger UI. Также возможно сгенерировать непосредственно клиента или сервер по спецификации API Swagger, для этого понадобится Swagger Codegen.
Этот фреймворк очень активно применяется в большинстве проектов, так что если вы ещё с ним не знакомы, то вот отличная статья:
https://habr.com/ru/post/541592/
#java #swagger
Хабр
Swagger (OpenAPI 3.0)
Всем привет!!! Это мой первый пост на Хабре и я хочу поделиться с вами своим опытом в исследовании нового для себя фреймворка. Мне предоставился момент выбрать тему и подготовить презентацию для своей...
Урок стрельбы в ногу: Как получить гарантированный Deadlock?
Как многие из вас наверняка знают, Deadlock – это взаимная блокировка, ситуация, когда два или более потока зависают в вечном ожидании ресурсов, захваченных друг другом.
Самый известный подход, который обеспечивает защиту от дедлока – захват и освобождение мониторов в строго определённом порядке.
Например имеются два монитора A и B захват которых осуществляется в порядке AB, соответственно, чтобы избежать дедлока, необходимо производить освобождение мониторов в обратном порядке - BA.
В таком случае ни один поток не сможет попасть на ожидание монитора B, успешно захватив при этом A.
То есть самый простой способ получить deadlock - нарушить данное правило. Но при этом всё равно нет гарантии что deadlock будет получен сразу же, для этого может потребоваться довольно длительное время.
Чтобы точно с первого раза выстрелить себе в ногу, нужно обеспечить ситуацию, когда оба потока окажутся на этапе между захватами одного и другого ресурса в одно время.
Для этого можно использовать CyclicBarrier, пример кода приведён ниже.
Теперь вы знаете как делать не надо! Многопоточность довольно важная тема, которую любят спрашивать на собеседованиях, хотя на практике в некоторых проектах напрямую с многопоточностью работать не приходится (зависит от специфики).
Из своего опыта проведения собеседований могу уверенно сказать что плавают в этой теме большинство кандидатов :)
#многопоточность #java
Как многие из вас наверняка знают, Deadlock – это взаимная блокировка, ситуация, когда два или более потока зависают в вечном ожидании ресурсов, захваченных друг другом.
Самый известный подход, который обеспечивает защиту от дедлока – захват и освобождение мониторов в строго определённом порядке.
Например имеются два монитора A и B захват которых осуществляется в порядке AB, соответственно, чтобы избежать дедлока, необходимо производить освобождение мониторов в обратном порядке - BA.
В таком случае ни один поток не сможет попасть на ожидание монитора B, успешно захватив при этом A.
То есть самый простой способ получить deadlock - нарушить данное правило. Но при этом всё равно нет гарантии что deadlock будет получен сразу же, для этого может потребоваться довольно длительное время.
Чтобы точно с первого раза выстрелить себе в ногу, нужно обеспечить ситуацию, когда оба потока окажутся на этапе между захватами одного и другого ресурса в одно время.
Для этого можно использовать CyclicBarrier, пример кода приведён ниже.
Теперь вы знаете как делать не надо! Многопоточность довольно важная тема, которую любят спрашивать на собеседованиях, хотя на практике в некоторых проектах напрямую с многопоточностью работать не приходится (зависит от специфики).
Из своего опыта проведения собеседований могу уверенно сказать что плавают в этой теме большинство кандидатов :)
#многопоточность #java
Уровни изоляции транзакций
Я уже ранее писал что уровни изоляции транзакций, это то что должен знать каждый программист и то что очень часто спрашивают на собеседованиях во многих компаниях.
Но на этот раз я принёс особенную статью - ещё ни один автор не смог раскрыть данную тему такими простыми и понятными словами! А главное - подача материала интересная и не придётся зубрить материал чтобы наконец запомнить тему.
Всем рекомендую к прочтению с целью просвещения или с целью освежить знания: https://habr.com/ru/post/469415/
#java #базыданных #транзакции
Я уже ранее писал что уровни изоляции транзакций, это то что должен знать каждый программист и то что очень часто спрашивают на собеседованиях во многих компаниях.
Но на этот раз я принёс особенную статью - ещё ни один автор не смог раскрыть данную тему такими простыми и понятными словами! А главное - подача материала интересная и не придётся зубрить материал чтобы наконец запомнить тему.
Всем рекомендую к прочтению с целью просвещения или с целью освежить знания: https://habr.com/ru/post/469415/
#java #базыданных #транзакции
Хабр
Уровни изолированности транзакций для самых маленьких
Сегодня хотел бы довести крайне интересный, но часто покрытый тайнами для обычных смертных программистов раздел базы данных (БД) — уровни изолированности транзакций. Как показывает практика, многие...
9 мифов о Java
Сегодня на моём сайте вышел перевод замечательной стати, которая разбирает популярные мифы о языке программирования Java. Так как язык постоянно развивается, то многие ограничения и проблемы, которые имели место быть в прошлом - сегодня уже не актуальны. Для удобства чтения чуть позже я выпущу отдельные посты по каждому мифу, а тот кто не ленится переходить по ссылкам - может уже сейчас прочитать статью целиком: http://akutepov.ru/ru/blog/9-mifov-o-java/
#java
Сегодня на моём сайте вышел перевод замечательной стати, которая разбирает популярные мифы о языке программирования Java. Так как язык постоянно развивается, то многие ограничения и проблемы, которые имели место быть в прошлом - сегодня уже не актуальны. Для удобства чтения чуть позже я выпущу отдельные посты по каждому мифу, а тот кто не ленится переходить по ссылкам - может уже сейчас прочитать статью целиком: http://akutepov.ru/ru/blog/9-mifov-o-java/
#java
akutepov.ru
Блог Алексея Кутепова: 9 мифов о Java
Рассматриваем
Разработка Telegram-бота на Java
Сегодня закончил писать новую статью о разработке Telegram-бота на Java с использованием Spring Boot. Тема хоть и не новая, но всегда актуальная, тем более в библиотеках постоянно происходят новые изменения (одно такое изменение разобрано в статье).
Статья доступна на моём сайте, желаю приятного чтения: http://akutepov.ru/ru/blog/prostoi-telegram-bot-na-java-i-spring-boot/
#java #telegram
Сегодня закончил писать новую статью о разработке Telegram-бота на Java с использованием Spring Boot. Тема хоть и не новая, но всегда актуальная, тем более в библиотеках постоянно происходят новые изменения (одно такое изменение разобрано в статье).
Статья доступна на моём сайте, желаю приятного чтения: http://akutepov.ru/ru/blog/prostoi-telegram-bot-na-java-i-spring-boot/
#java #telegram
akutepov.ru
Блог Алексея Кутепова: Простой Telegram-бот на Java и Spring Boot
Media is too big
VIEW IN TELEGRAM
Вопрос с собеседования на Java-разработчика: выполнится ли код в блоке finally, если в try-catch добавить оператор return? #java #программирование
Простой Telegram-бот на Java и Spring Boot
Сегодня на моём YouTube-канале вышло новое учебное видео, посвящённое разработке Telegram-бота.
Желаю приятного просмотра: https://youtu.be/bOZ1AHjbpag
#java
Сегодня на моём YouTube-канале вышло новое учебное видео, посвящённое разработке Telegram-бота.
Желаю приятного просмотра: https://youtu.be/bOZ1AHjbpag
#java
YouTube
Простой Telegram-бот на Java и Spring Boot
В данном видеоуроке я показываю как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.
Поддержать автора:…
Поддержать автора:…
Mockito для тестирования вашего приложения
При написании unit-тестов иногда требуется смоделировать поведение того или иного класса, или же вообще проследить за фактом выполнения его внутренних методов, а иногда, просто требуются заглушки побочных классов и методов, чтобы протестировать основной функционал, не поднимая при этом весь контекст приложения.
Для этих целей и существует фреймворк Moсkito, который используется уже повсеместно, а значит нужно обязательно уметь работать с ним. Даже в моей новой статье, над которой я сейчас работаю, при тестировании механизма кэширования будет задействован Mockito, чтобы убедиться в отсутствии лишних обращений к базе данных, если результат уже хранится в кэше.
Поэтому сегодня я выкладываю очень полезную подборку статей по Mockito, с одного известного сайта. Статьи хоть и на английском, но написаны максимально понятно и лаконично, так что трудностей с их изучением возникнуть не должно:
https://www.baeldung.com/mockito-series
#java #mockito
При написании unit-тестов иногда требуется смоделировать поведение того или иного класса, или же вообще проследить за фактом выполнения его внутренних методов, а иногда, просто требуются заглушки побочных классов и методов, чтобы протестировать основной функционал, не поднимая при этом весь контекст приложения.
Для этих целей и существует фреймворк Moсkito, который используется уже повсеместно, а значит нужно обязательно уметь работать с ним. Даже в моей новой статье, над которой я сейчас работаю, при тестировании механизма кэширования будет задействован Mockito, чтобы убедиться в отсутствии лишних обращений к базе данных, если результат уже хранится в кэше.
Поэтому сегодня я выкладываю очень полезную подборку статей по Mockito, с одного известного сайта. Статьи хоть и на английском, но написаны максимально понятно и лаконично, так что трудностей с их изучением возникнуть не должно:
https://www.baeldung.com/mockito-series
#java #mockito
Baeldung
Mockito Series | Baeldung
Learn how to work with the popular Java mocking library Mockito, for clean and readable unit tests.
Кэширование данных в Spring Boot
Настало время авторского контента :)
На моём сайте вышла статья, в которой я подробно разобрал базовые возможности кэширования данных в приложении на Spring Boot. Тут очень много практических примеров и даже показано то, как под капотом хранится кэш.
Кроме этого, в предыдущей статье про разработку Telegram-бота я писал что возвращаемый результат пары методов хорошо бы кэшировать и обещал разобрать этот вопрос в следующей статье. Так вот, обещание я сдержал - добавил бонусную часть, где не только рассказано как доработать Telegram-бот, но и разобраны дополнительные нюансы, с которыми можно столкнуться уже при разработке собственного приложения!
Желаю приятного прочтения: https://akutepov.ru/ru/blog/keshirovaniie-dannykh-v-prilozhienii-na-spring-boot/
#java #springboot #cache
Настало время авторского контента :)
На моём сайте вышла статья, в которой я подробно разобрал базовые возможности кэширования данных в приложении на Spring Boot. Тут очень много практических примеров и даже показано то, как под капотом хранится кэш.
Кроме этого, в предыдущей статье про разработку Telegram-бота я писал что возвращаемый результат пары методов хорошо бы кэшировать и обещал разобрать этот вопрос в следующей статье. Так вот, обещание я сдержал - добавил бонусную часть, где не только рассказано как доработать Telegram-бот, но и разобраны дополнительные нюансы, с которыми можно столкнуться уже при разработке собственного приложения!
Желаю приятного прочтения: https://akutepov.ru/ru/blog/keshirovaniie-dannykh-v-prilozhienii-na-spring-boot/
#java #springboot #cache
akutepov.ru
Блог Алексея Кутепова: Кэширование данных в приложении на Spring Boot
Разбираем
Друзья, завершился очередной летний отпуск и я снова возвращаюсь к работе! Вообще летом не получается активно вести соцсети, но над учебными материалами постепенно работаю. Перед отпуском я закончил статью по кэшированию данных (https://akutepov.ru/ru/blog/keshirovaniie-dannykh-v-prilozhienii-na-spring-boot/) и теперь планирую записать видео по этой статье. Ну и обдумываю дальнейшие планы по новым материалам. Как всегда, основной упор буду делать на Java-разработку, но возможны варианты. А какие темы интересны вам? Пишите свои ответы в комментариях, обсудим :) #айти #программирование #программист #отпуск #java #kotlin #python
Кэширование данных в приложении на Spring Boot
Друзья, сегодня на моём канале вышло новое видео про кэширование данных в Spring Boot. Чуть ранее я выкладывал уже статью по этой теме и теперь весь материал статьи доступен в видеоформате!
Желаю вам приятного просмотра!
https://youtu.be/QJUGF-kWaR0?si=Hspzs4xCpX9vYRyR
#java #springboot #кэширование
Друзья, сегодня на моём канале вышло новое видео про кэширование данных в Spring Boot. Чуть ранее я выкладывал уже статью по этой теме и теперь весь материал статьи доступен в видеоформате!
Желаю вам приятного просмотра!
https://youtu.be/QJUGF-kWaR0?si=Hspzs4xCpX9vYRyR
#java #springboot #кэширование
YouTube
Кэширование данных в приложении на Spring Boot
На практике часто бывает ситуация, когда необходимо многократно извлекать одни и те же данные, например из базы данных, либо получать их по http или другим затратным способом. В отдельных случаях такие запросы могут работать медленно (например сторонний сервис…
Обработка исключений в контроллерах Spring
На моём канале вышло новое видео, посвящённое централизованной обработке исключений в контроллерах Spring. Ранее уже у меня была статья на данную тему, которая даже была положительно отмечена на Хабре в своё время на конкурсе Технотекст, теперь же весь материал доступен в видеоформате. Желаю приятного просмотра:
https://youtu.be/jqWXmwu7nlk?si=g6CnG-Rh4Im5VSR5
#java #spring
На моём канале вышло новое видео, посвящённое централизованной обработке исключений в контроллерах Spring. Ранее уже у меня была статья на данную тему, которая даже была положительно отмечена на Хабре в своё время на конкурсе Технотекст, теперь же весь материал доступен в видеоформате. Желаю приятного просмотра:
https://youtu.be/jqWXmwu7nlk?si=g6CnG-Rh4Im5VSR5
#java #spring
YouTube
Обработка исключений в контроллерах Spring
Часто на практике возникает необходимость централизованной обработки исключений в рамках контроллера или даже всего приложения. В данном видео разберём основные возможности, которые предоставляет Spring Framework для решения этой задачи и на простых примерах…
Что умеет Spring Scheduler?
На днях закончил писать очередную статью, которая на этот раз посвящена планировщикам задач в Spring и их настройке. Как всегда - много практических примеров и описания их работы, а так же примеры кода на GitHub!
https://akutepov.ru/ru/blog/chto-umieiet-spring-scheduler/
#java
На днях закончил писать очередную статью, которая на этот раз посвящена планировщикам задач в Spring и их настройке. Как всегда - много практических примеров и описания их работы, а так же примеры кода на GitHub!
https://akutepov.ru/ru/blog/chto-umieiet-spring-scheduler/
#java
Планировщик задач в Spring
На моём канале вышло новое видео о том как работает планировщик задач в Spring. Чуть ранее я выкладывал статью на данную тему, но теперь материал доступен и в видео-формате! Желаю приятного просмотра:
https://youtu.be/Je4Jgh_eztQ
#программирование #java #spring
На моём канале вышло новое видео о том как работает планировщик задач в Spring. Чуть ранее я выкладывал статью на данную тему, но теперь материал доступен и в видео-формате! Желаю приятного просмотра:
https://youtu.be/Je4Jgh_eztQ
#программирование #java #spring
YouTube
Планировщик задач в Spring или что умеет Spring Scheduler?
Часто бывает необходимо, чтобы приложение выполняло какие-то действия регулярно, в определённое время. Например каждое утро выгружать актуальные данные из ст...