Многопоточность. Класс CyclicBarrier
В многопоточном программировании часто случаются ситуации, когда поток должен находится в режиме ожидания в определенной точке приложения, пока остальные потоки не достигнут этой точки. Как только нужное количество потоков достигает точки ожидания, то приостановка выполнения потоков снимается и потоки могут вновь продолжить свою работу. На пример, если ряд потоков, каждый из которых выполняет часть общего вычисления и результат их работы должен быть объединен в общий результат. Объединить результат вычисления можно только в том случае, когда все потоки завершат свои маленькие вычисления. Поэтому потоки, которые первые завершили свою работы должны ожидать завершения работы оставшихся потоков. Для реализации описанного механизма в пакете java.util.concurrent предусмотрен класс CyclicBarrier (с версии 1.5).
Подробнее
В многопоточном программировании часто случаются ситуации, когда поток должен находится в режиме ожидания в определенной точке приложения, пока остальные потоки не достигнут этой точки. Как только нужное количество потоков достигает точки ожидания, то приостановка выполнения потоков снимается и потоки могут вновь продолжить свою работу. На пример, если ряд потоков, каждый из которых выполняет часть общего вычисления и результат их работы должен быть объединен в общий результат. Объединить результат вычисления можно только в том случае, когда все потоки завершат свои маленькие вычисления. Поэтому потоки, которые первые завершили свою работы должны ожидать завершения работы оставшихся потоков. Для реализации описанного механизма в пакете java.util.concurrent предусмотрен класс CyclicBarrier (с версии 1.5).
Подробнее
Telegraph
Многопоточность. Класс CyclicBarrier
В многопоточном программировании часто случаются ситуации, когда поток должен находится в режиме ожидания в определенной точке приложения, пока остальные потоки не достигнут этой точки. Как только нужное количество потоков достигает точки ожидания, то приостановка…
👍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
🗓 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/
Совсем недавно я сдал OCA Java SE 7 Programmer I. За время подготовки успел решить огромное количество задач и извлечь из них много тонких моментов языка. Самые интересные и ловкие — сохранял на будущее. И вот у меня накопилась небольшая личная коллекция, лучшую часть которой я здесь и опишу.
https://habr.com/ru/post/203796/
👍6👎2
Java 18. Что нового добавили, и почему вам это пригодится
Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.
Подробнее
Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.
Подробнее
👍2
Java: есть ли жизнь на десктопе?
Привет! Я Виктор Барсуков, Java-разработчик в Lamoda. В этой статье я хочу рассказать о разработке десктопного Java-приложения, что из этого получилось и что можно было бы сделать иначе.
В 2019 году в России ввели обязательную маркировку ряда товаров. В связи с этим малому бизнесу пришлось покупать и настраивать дорогие по меркам МСП (то есть, малых и средних предпринимателей) программы и оборудование.
Подробнее
Привет! Я Виктор Барсуков, Java-разработчик в Lamoda. В этой статье я хочу рассказать о разработке десктопного Java-приложения, что из этого получилось и что можно было бы сделать иначе.
В 2019 году в России ввели обязательную маркировку ряда товаров. В связи с этим малому бизнесу пришлось покупать и настраивать дорогие по меркам МСП (то есть, малых и средних предпринимателей) программы и оборудование.
Подробнее
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Подробнее
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Подробнее
👍4
Веб-разработка на Java
Обзор реального веб-приложения на Spring.
Spring Integration Testing.
Spring Unit Testing. Mockito.
Servlet filters. FreeMarker custom macro.
Spring Security. Часть 2.
Spring Security. Часть 1.
Spring JavaConfig. Часть 2.
Spring JavaConfig. Часть 1.
Spring AOP Intro.
Spring Data JPA. Repository.
Spring Data JPA. EntityManager, JPQL.
Урок 14. Hibernate Intro. ORM, HQL.
Урок 13. Spring JdbcTemplate.
Урок 12. Spring Validator.
Урок 11. JDBC API.
Урок 10. Spring forms validation.
Урок 9. @ModelAttribute
Урок 8. FreeMarker.
Урок 7. FreeMarker Intro.
Урок 6. Spring MVC Intro.
Урок 5. Spring Inversion of Control (IoC).
Урок 4. Inversion of Control (IoC) Intro.
Урок 3. Maven.
Урок 2. Maven Intro.
Урок 1. Git Intro.
https://www.youtube.com/playlist?list=PLVKSU8yHkskF5LT1cNTdGXINtOrxAxjjV
Обзор реального веб-приложения на Spring.
Spring Integration Testing.
Spring Unit Testing. Mockito.
Servlet filters. FreeMarker custom macro.
Spring Security. Часть 2.
Spring Security. Часть 1.
Spring JavaConfig. Часть 2.
Spring JavaConfig. Часть 1.
Spring AOP Intro.
Spring Data JPA. Repository.
Spring Data JPA. EntityManager, JPQL.
Урок 14. Hibernate Intro. ORM, HQL.
Урок 13. Spring JdbcTemplate.
Урок 12. Spring Validator.
Урок 11. JDBC API.
Урок 10. Spring forms validation.
Урок 9. @ModelAttribute
Урок 8. FreeMarker.
Урок 7. FreeMarker Intro.
Урок 6. Spring MVC Intro.
Урок 5. Spring Inversion of Control (IoC).
Урок 4. Inversion of Control (IoC) Intro.
Урок 3. Maven.
Урок 2. Maven Intro.
Урок 1. Git Intro.
https://www.youtube.com/playlist?list=PLVKSU8yHkskF5LT1cNTdGXINtOrxAxjjV
👍9
👊А вы уже знакомы с новым форматом битвы кодов?
Сейчас вовсю идёт «битва программистов» — Sberfight. Участников ждёт фан, призы (💻, 📱, ⌚️) и даже приглашения на работу.
Это прикольная «разминка для мозгов»: быстро найти неочевидное решение, написать код и… наслаждаться визуализацией, как виртуозно дерётся персонаж🥷 Он даже может сделать «сберталити», ну вы понимаете😉
👉Отборочный этап — до 25 февраля.
👉В плей-офф пройдут 256 участников.
🏆 Финальные битвы — 25–27 февраля.
Переходите по ссылке, выбирайте персонажа и погрузитесь в атмосферу файтинга, в котором мощь героя зависят только от силы ваших кодинговых скиллов😎
Да победит умнейший!🧠
Сейчас вовсю идёт «битва программистов» — Sberfight. Участников ждёт фан, призы (💻, 📱, ⌚️) и даже приглашения на работу.
Это прикольная «разминка для мозгов»: быстро найти неочевидное решение, написать код и… наслаждаться визуализацией, как виртуозно дерётся персонаж🥷 Он даже может сделать «сберталити», ну вы понимаете😉
👉Отборочный этап — до 25 февраля.
👉В плей-офф пройдут 256 участников.
🏆 Финальные битвы — 25–27 февраля.
Переходите по ссылке, выбирайте персонажа и погрузитесь в атмосферу файтинга, в котором мощь героя зависят только от силы ваших кодинговых скиллов😎
Да победит умнейший!🧠
Бесплатный курс по JavaScript от «билайн» с возможностью попасть на работу в компанию
Хотите начать карьеру в «билайн»? Тогда регистрируйтесь на бесплатную образовательную программу от экспертов компании в онлайн-формате. Здесь вы пройдете курс лекций по JavaScript, изучите React и получите шанс попасть на работу в компанию. Приглашаются студенты последних курсов бакалавриата, магистранты, а также выпускники 2018-2021 годов со всей России со знанием HTML.
На программе вас ждут:
— Карьерные бонусы и предложение о работе. Лучшие интерны смогут присоединиться к одной из продуктовых команд и продолжить работу над IT-задачами «билайн».
— Возможность бесплатно изучить JavaScript и React. Вас ждет курс лекций от лучших разработчиков «билайн» и приглашенных экспертов — похожие программы стоят сотни тысяч.
— Реальные проекты компании. Вы узнаете, как работают разные отделы, погрузитесь в запуск продукта и поучаствуете в планировании спринтов.
— Персональный ментор. На протяжении всего курса вас будет сопровождать опытный наставник.
Регистрируйтесь до 28 февраля включительно: https://clck.ru/avu37
Хотите начать карьеру в «билайн»? Тогда регистрируйтесь на бесплатную образовательную программу от экспертов компании в онлайн-формате. Здесь вы пройдете курс лекций по JavaScript, изучите React и получите шанс попасть на работу в компанию. Приглашаются студенты последних курсов бакалавриата, магистранты, а также выпускники 2018-2021 годов со всей России со знанием HTML.
На программе вас ждут:
— Карьерные бонусы и предложение о работе. Лучшие интерны смогут присоединиться к одной из продуктовых команд и продолжить работу над IT-задачами «билайн».
— Возможность бесплатно изучить JavaScript и React. Вас ждет курс лекций от лучших разработчиков «билайн» и приглашенных экспертов — похожие программы стоят сотни тысяч.
— Реальные проекты компании. Вы узнаете, как работают разные отделы, погрузитесь в запуск продукта и поучаствуете в планировании спринтов.
— Персональный ментор. На протяжении всего курса вас будет сопровождать опытный наставник.
Регистрируйтесь до 28 февраля включительно: https://clck.ru/avu37
👍3👎1
Подборка шпаргалок по Java (Cheat Sheets) в формате PDF
https://bookflow.ru/shpargalka-po-java-cheat-sheets/
https://bookflow.ru/shpargalka-po-java-cheat-sheets/
👍4
Задача: реализовать функцию
Какое решение самое простое? Компактное? Эффективное? Зрелищное?
factorial(n) -> long
.Какое решение самое простое? Компактное? Эффективное? Зрелищное?
ArrayList в Java с примерами — Collection Framework
Класс ArrayList реализует интерфейс List, который основан на структуре данных массива. Он широко используется из-за гибкости и функциональности. Многие разработчики выбирают ArrayList вместо обычного массива, потому что это является хорошей альтернативой традиционному массиву. ArrayList — это массив с изменяемым размером, который реализует интерфейс List.
Подробнее
Класс ArrayList реализует интерфейс List, который основан на структуре данных массива. Он широко используется из-за гибкости и функциональности. Многие разработчики выбирают ArrayList вместо обычного массива, потому что это является хорошей альтернативой традиционному массиву. ArrayList — это массив с изменяемым размером, который реализует интерфейс List.
Подробнее
👍2
Полный курс Java ☕ (𝙁𝙧𝙚𝙚)
Полный курс по Java для начинающих
#Java # учебник # для начинающих
https://www.youtube.com/watch?v=xk4_1vDrzzo
Полный курс по Java для начинающих
#Java # учебник # для начинающих
https://www.youtube.com/watch?v=xk4_1vDrzzo
YouTube
Java Full Course for free ☕
Java tutorial for beginners full course
#Java #tutorial #beginners
⭐️Time Stamps⭐️
#1 (00:00:00) Java tutorial for beginners ☕
#2 (00:20:26) variables ❌
#3 (00:32:58) swap two variables 💱
#4 (00:36:42) user input ⌨️
#5 (00:44:40) expressions…
#Java #tutorial #beginners
⭐️Time Stamps⭐️
#1 (00:00:00) Java tutorial for beginners ☕
#2 (00:20:26) variables ❌
#3 (00:32:58) swap two variables 💱
#4 (00:36:42) user input ⌨️
#5 (00:44:40) expressions…
Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
👍10
Простой пример наследования в java
Сегодня не будет теории, только практика. И так в java мы можем создать свой класс и при этом унаследовать от другого все его методы и объекты. И так, создадим класс Man (человек):
Подробнее
Сегодня не будет теории, только практика. И так в java мы можем создать свой класс и при этом унаследовать от другого все его методы и объекты. И так, создадим класс Man (человек):
Подробнее
👎3
Как улучшить межсерверное взаимодействие и сэкономить время разработчика
Хочу поделиться опытом внедрения подхода Contract-First в backend.
Я расскажу, как описывать контракты, проводить новые стрелочки, их согласовывать и не потеряться в потоке изменений в большой микросервисной архитектуре.
Подробнее
Хочу поделиться опытом внедрения подхода Contract-First в backend.
Я расскажу, как описывать контракты, проводить новые стрелочки, их согласовывать и не потеряться в потоке изменений в большой микросервисной архитектуре.
Подробнее
Устали ждать ответов после собеседований? Получите работу за один день на Java day offer
Международная компания Lineate ищет junior/middle-специалистов на проекты по разработке и внедрению высоконагруженных сервисов, систем сбора, управления, визуализации и анализа данных.
Работу можно получить за один день — запоминайте план действий.
1. Заполнить анкету на сайте и получить письмо с заданием.
2. Отправить тестовое до 22 февраля включительно.
3. Пройти два этапа интервью 26 февраля — ответ придет в тот же день.
От вас: опыт работы от двух лет, знания Spring Framework и готовность общаться с заказчиками на английском.
От Lineate: долгосрочные проекты, гибкий график, современный стек технологий, обучение и другое.
За подробностями переходите по ссылке.
Международная компания Lineate ищет junior/middle-специалистов на проекты по разработке и внедрению высоконагруженных сервисов, систем сбора, управления, визуализации и анализа данных.
Работу можно получить за один день — запоминайте план действий.
1. Заполнить анкету на сайте и получить письмо с заданием.
2. Отправить тестовое до 22 февраля включительно.
3. Пройти два этапа интервью 26 февраля — ответ придет в тот же день.
От вас: опыт работы от двух лет, знания Spring Framework и готовность общаться с заказчиками на английском.
От Lineate: долгосрочные проекты, гибкий график, современный стек технологий, обучение и другое.
За подробностями переходите по ссылке.