ar
Feedback
Java | Фишки и трюки

Java | Фишки и трюки

الذهاب إلى القناة على Telegram

Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg

إظهار المزيد
6 813
المشتركون
لا توجد بيانات24 ساعات
-137 أيام
-6630 أيام
أرشيف المشاركات
⌨️ Срезы в стримах. Метод takeWhile В Java 9 появилось два новых метода, полезных для выбора элементов потока с хорошей производительностью: takeWhile и dropWhile. Допустим, у нас есть следующий список блюд:

List<Dish> specialMenu = Arrays.asList(
new Dish("seasonal fruit", 120),
new Dish("prawns", 300),
new Dish("rice", 350),
new Dish("chicken", 400),
new Dish("french fries", 530));
Для получения блюд с калорийностью меньше 320, можно воспользоваться операцией filter. Недостаток операции filter в том, что она требует прохода в цикле по всему потоку данных с применением предиката ко всем элементам. В нашем примере список уже отсортирован по числу калорий. Вместо того, чтобы пройтись по каждому элементу, можно прекратить работу сразу же после обнаружения блюда, содержащего 320 калорий или более. В случае небольшого списка это может показаться не таким уж громадным преимуществом, но при работе с потенциально большим потоком элементов окажется весьма полезным. Поможет нам в этом операция takeWhile! Она позволяет выполнить срез любого потока данных (даже бесконечного) с помощью предиката. И, к счастью, она прекращает работу сразу же по обнаружении неподходящего элемента. Вот как ее следует использовать:

List<Dish> sliceMenu1 
    = specialMenu.stream()
                 .takeWhile(dish -> dish.getCalories() < 320)
                 .collect(toList());
#java #stream #takeWhile

Коллеги, всем привет! Много людей в комментариях и личку давно просили больше тестов и наконец у меня дошли руки, чтобы сдела
Коллеги, всем привет! Много людей в комментариях и личку давно просили больше тестов и наконец у меня дошли руки, чтобы сделать отдельный канал, в котором я буду ежедневно публиковать тесты по Java Core, а также Spring. Тесты, которые там публикую можно спокойно использовать в том числе для подготовки к сертификации по: ▫️OCA/OCP экзаменам от Oracle ▫️Сертификации по Spring от VMWare. Или просто когда скучно на перерыве за кофе) Подключайтесь 👉 https://t.me/+fPICp5L0C_5hNDk6

⌨️ В каких состояниях может находиться поток? Потоки могут находиться в одном из следующих состояний: ✔️ Новый (New). После создания экземпляра потока, он находится в состоянии Новый до тех пор, пока не вызван метод start(). В этом состоянии поток не считается живым. ✔️ Работоспособный (Runnable). Поток переходит в состояние Работоспособный, когда вызывается метод start(). Поток может перейти в это состояние также из состояния Работающий или из состояния Блокирован. Когда поток находится в этом состоянии, он считается живым. ✔️ Работающий (Running). Поток переходит из состояния Работоспособный в состояние Работающий, когда Планировщик потоков выбирает его как работающий в данный момент. ✔️ Живой, но не работоспособный (Alive, but not runnable). Поток может быть живым, но не работоспособным по нескольким причинам: ▪️Ожидание (Waiting). Поток переходит в состояние Ожидания, вызывая метод wait(). Вызов notify() или notifyAll() может перевести поток из состояния Ожидания в состояние Работоспособный. ▪️Сон (Sleeping). Метод sleep() переводит поток в состояние Сна на заданный промежуток времени в миллисекундах. ▪️Блокировка (Blocked). Поток может перейти в это состояние, в ожидании ресурса, такого как ввод/вывод или из-за блокировки другого объекта. В этом случае поток переходит в состояние Работоспособный, когда ресурс становится доступен. ▪️Мёртвый (Dead). Поток считается мёртвым, когда его метод run() полностью выполнен. Мёртвый поток не может перейти ни в какое другое состояние, даже если для него вызван метод start(). #java #Thread #state

ТОП-4 Курса по Программированию ⚡Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов сту
ТОП-4 Курса по Программированию ⚡Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов студентов. ✅Хотите стать программистом, но не знаете с какого языка начать? Помогаем разобраться в самых популярных и востребованных языках программирования. Подарок в конце подборки! Выбрать #реклама 16+ tutortop.ru О рекламодателе

⌨️ В чём заключается разница между методами start() и run() класса Thread? Несмотря на то, что start() вызывает метод run() внутри себя, это не то же самое, что просто вызов run(). Если run() вызывается как обычный метод, то он вызывается в том же потоке и никакой новый поток не запускается, как это происходит, в случае, когда вы вызываете метод start(). #java #Thread #start #run

photo content

Регистрируйтесь на главную конференцию Yandex Cloud! Большая конференция Yandex Cloud для тех, кто создаёт цифровые продукты
Регистрируйтесь на главную конференцию Yandex Cloud! Большая конференция Yandex Cloud для тех, кто создаёт цифровые продукты и решения. Вас ждут 5 тематических треков, 31 доклад, 50 экспертов, нетворкинг и общение. Участие бесплатное! Зарегистрироваться #реклама 16+ scale.yandex.cloud О рекламодателе

⌨️ Инициализация это процесс задания начальных значений переменным и объектам перед их использованием. Этот процесс необходим
⌨️ Инициализация это процесс задания начальных значений переменным и объектам перед их использованием. Этот процесс необходим для того, чтобы обеспечить корректное начальное состояние переменных и объектов в программе. Порядок инициализации 1⃣ Статические переменные: если в классе есть статические переменные, то они будут инициализированы в первую очередь. Переменные будут инициализированы в том порядке в котором идут в коде. 2⃣ Статический блок инициализации: далее сработает блок инициализации статических переменных. 3⃣ Переменные экземпляра 4⃣ Блок инициализации переменных экземпляра 5⃣ Конструктор Вывод кода: Static Variables initialized! Static Initialization Block initialized! Instance Variables initialized! Instance Initialization Block initialized! Constructor initialized! Инициализация в Java является важным аспектом, который гарантирует, что объекты и переменные находятся в правильном состоянии перед их использованием. Понимание порядка инициализации помогает избегать ошибок и создавать надежные программы на Java.

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

Что выведет код?
Anonymous voting

public class Quest {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 10; i++) {
            j = j++;
        }
        System.out.println(j);
    }
}
#java #quest

⌨️ Каким образом можно создать поток? ✔️ Создать потомка класса Thread и переопределить его метод run(); ✔️ Создать объект класса Thread, передав ему в конструкторе экземпляр класса, реализующего интерфейс Runnable. Этот интерфейс содержит метод run(), который будет выполняться в новом потоке. Поток закончит выполнение, когда завершится его метод run(). ✔️ Вызвать метод submit() у экземпляра класса реализующего интерфейс ExecutorService, передав ему в качестве параметра экземпляр класса реализующего интерфейс Runnable или Callable (содержит метод call(), в котором описывается логика выполнения). #java #Thread #Runnable #Callable

Помощь в трудоустройстве в IT-сфере! По всей России объявили бесплатную программу на шестимесячное обучение по IT-cпециальнос
+9
Помощь в трудоустройстве в IT-сфере! По всей России объявили бесплатную программу на шестимесячное обучение по IT-cпециальностям. Запись на участие в программе продлится до конца июля, но чтобы туда попасть, нужно пройти специальный профтест. По результату тестирования сразу узнаете, какая профессия вам подойдет, и проходите ли вы на бесплатное обучение. Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

⌨️ Создание скриншота Этот код позволяет сделать снимок экрана и сохранить его в формате .png. ✅Toolkit.getDefaultToolkit().g
⌨️ Создание скриншота Этот код позволяет сделать снимок экрана и сохранить его в формате .png. ✅Toolkit.getDefaultToolkit().getScreenSize() — для получения размеров экрана; ✅ Robot — объект, который используется для захвата экрана; ✅ BufferedImage — объект, представляющий собой изображение экрана; ✅ ImageIO.write() — метод для сохранения захваченного изображения в файл с заданным именем и форматом. #Java #Screenshot

Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

⌨️ Класс Pattern Pattern - это класс, представляющий собой компилированное представление регулярного выражения. Он позволяет
⌨️ Класс Pattern Pattern - это класс, представляющий собой компилированное представление регулярного выражения. Он позволяет создать объект-шаблон, который можно применить к строке для поиска соответствий определенному шаблону. Для создания объекта Pattern используется статический метод compile(), который принимает на вход строку с регулярным выражением. Пример создания объекта Pattern:

Pattern pattern = Pattern.compile("\\d");
В примере мы компилируем регулярное выражение, которое соответствует любой цифре в строке. После компиляции мы можем использовать объект Pattern для поиска соответствий в строках. В результате будет выведено количество цифр в строке. #java #Pattern

Если вы сотрудник ИТ-компании, пройдите опрос о работе Это займёт всего пять минут. Всех, кто поможет ответить на вопросы исс
Если вы сотрудник ИТ-компании, пройдите опрос о работе Это займёт всего пять минут. Всех, кто поможет ответить на вопросы исследования до 6 сентября, в конце анкеты ждёт сюрприз — возможность получить Apple AirPods Max в подарок! ✨ Перейти на сайт #реклама odna.co О рекламодателе

⌨️ Виртуальные потоки (Virtual Threads) — это новая возможность, представленная в Java, начиная с версии 19 (в предварительном режиме), а окончательно внедрённая в версии 21. Они позволяют создавать и управлять миллионами потоков с минимальными затратами на системные ресурсы. Виртуальные потоки облегчают работу с конкурентными задачами и устраняют необходимость в сложных библиотеках и фреймворках для управления потоками. Виртуальные потоки гораздо легче системных (они не привязаны к операционной системе), что позволяет их создавать в большом количестве. Так же, виртуальные потоки совместимы с существующим экосистемой Java, включая традиционные блокирующие операции, такие как I/O.

public class VirtualThreadsExample {
    public static void main(String[] args) throws InterruptedException {
        // Создаем виртуальный поток
        Thread virtualThread = Thread.ofVirtual().start(() -> {
            try {
                // Эмуляция длительной задачи
                Thread.sleep(1000);
                System.out.println("Hello from virtual thread!");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

        // Дожидаемся завершения потока
        virtualThread.join();
    }
}
#java #VirtualThreads

🚨 Не знаешь как подготовиться к собесу по Java? Хватит гадать, бери готовые ответы! Очень часто на интервью по Java задают одни и те же вопросы по базовым темам, вне зависимости от копании и грейда! Хотим порекомендовать новый материал от Павла Сорокина, в котором он агрегировал свой опыт прохождения собеседований и менторства и подробно разобрал самые частые вопросы по Java Core и многопоточности в одном видео-гайде. 🔥 Что внутри гайда? 📍Обзор самых популярных вопросов на собеседованиях по Java Core и многопоточности. 📍Пошаговые объяснения и лайфхаки, как правильно отвечать. 📍Запись успешного собеса на Junior в один из крупнейших российских финтехов. Благодаря этому гайду ученики Паши легко проходят собеседования и получают офферы на 150-350 тысяч в крупнейшие компании. Теперь твоя очередь! Делимся видео-гайдом совершенно бесплатно 🎁 🚀 Переходи в бота, забирай гайд и будь готов к любому повороту на собесе!👇🏻 https://t.me/JavaLearnBot?start=c1724626210163-36-ds

Что выведет код?
Anonymous voting