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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
6 952
Obunachilar
+124 soatlar
-107 kunlar
+1230 kunlar
Postlar arxiv
⌨️ Чем различаются Thread и Runnable? Thread - это класс, некоторая надстройка над физическим потоком. Runnable - это интерфейс, представляющий абстракцию над выполняемой задачей. Интерфейс Runnable позволяет логически отделить логику выполнения задачи от непосредственного управления потоком. #java #Thread #Runnable

Отличная работа!

Ваши товары станут заметнее в поиске Яндекса Яндекс Товары — сервис для аналитики и роста продаж интернет-магазинов. Подробне
Ваши товары станут заметнее в поиске Яндекса Яндекс Товары — сервис для аналитики и роста продаж интернет-магазинов. Подробнее ⚡ Попробовать #реклама merchants.yandex.ru О рекламодателе

⌨️ Чем отличаются методы Stream.toList() и Stream.collect(Collectors.toList())? Методы Stream.toList() и Stream.collect(Collectors.toList()) кажутся схожими, так как оба возвращают список, но есть ключевое отличие: Stream.toList() возвращает неизменяемый список, а Stream.collect(Collectors.toList()) возвращает изменяемый список на базе ArrayList. #java #stream #toList

👩‍💻 Как эффективно использовать OAuth 2 в Spring-приложениях? Ждем вас на открытом вебинаре 18 сентября в 20:00 мск. где мы
👩‍💻 Как эффективно использовать OAuth 2 в Spring-приложениях?  Ждем вас на открытом вебинаре 18 сентября в 20:00 мск.  где мы разберем: ✔️ что такое OAuth 2 и как он работает в Spring-приложениях; ✔️ какие роли и процессы задействованы в фреймворке авторизации; ✔️ его расширения;  ✔️ ответы на все возникающие вопросы.  Урок идеально подходит для Java- и Kotlin-разработчиков. Встречаемся в преддверии старта курса «Разработчик на Spring Framework». Все участники вебинара получат специальную цену на обучение!  📌 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/po36/?erid=LjN8JxeNd

⌨️ "Распрямление" потока. Метод flatMap Метод Stream.flatMap используется для преобразования элементов одного потока (stream) в несколько элементов другого потока, а затем объединения этих элементов в один поток. Это особенно полезно, когда у вас есть коллекция коллекций, и вы хотите "распрямить" её, т.е. получить плоскую структуру, содержащую все элементы. Допустим, у вас есть список строк, каждая из которых содержит несколько слов, и вы хотите получить поток всех слов:

List<String> sentences = Arrays.asList("Java is fun", "I love programming");

Stream<String> wordsStream = sentences.stream()
    .flatMap(sentence -> Arrays.stream(sentence.split(" "))); // Преобразуем в поток слов

wordsStream.forEach(System.out::println);
Результат:
Java
is
fun
I
love
programming
Здесь каждый массив слов был преобразован в поток, а затем flatMap "распрямил" эти потоки в один. #java #stream #flatMap

Бесплатный интенсив: Java-разработчик: старт в профессии с нуля. 📆 Когда: 17-18 сентября в 19:00 по мск. За два дня интенсив
Бесплатный интенсив: Java-разработчик: старт в профессии с нуля. 📆 Когда: 17-18 сентября в 19:00 по мск. За два дня интенсива в прямом эфире, под руководством опытного Java-разработчика, вы сможете: ✔️ Познакомиться с синтаксисом и основными конструкциями языка Java. ✔️ Написать свой первый проект и определить, подходит ли вам профессия разработчика. ✔️ Создать Telegram-бота с нуля. ✔️ Узнать ответы интересующие вас вопросы. ✔️ Получить доступ к закрытому профессиональному сообществу. 🎁 Подарки для участниковинтенсива: гайд «Как заговорить на сленге IT-специалистов», карта компетенций начинающего Java-разработчика и доступ в закрытое сообщество «Старт в Java» от Хекслета!

⌨️ Классы-обёртки (wrapper classes) В Java классы-обёртки (wrapper classes) используются для того, чтобы представлять примити
⌨️ Классы-обёртки (wrapper classes) В Java классы-обёртки (wrapper classes) используются для того, чтобы представлять примитивные типы данных как объекты. Это необходимо, так как Java — это объектно-ориентированный язык, и в некоторых случаях, например, при работе с коллекциями, нужно использовать объекты вместо примитивных типов. Для каждого примитивного типа данных существует соответствующий класс-обёртка. Java автоматически преобразует примитивные типы в соответствующие объекты классов-обёрток и наоборот. Это упрощает код, так как программисту не нужно делать это вручную. Все классы-обёртки являются неизменяемыми, то есть их значения не могут быть изменены после создания. Некоторые классы-обёртки, такие как Byte, Short, Integer и Long, кэшируют значения в определённом диапазоне (от -128 до 127), что улучшает производительность при частом использовании этих значений. #java #wrappers

👩‍💻 Программирование теперь в Telegram! Вот 8 обучающих каналов по самым востребованным направлениям в IT. Выбирай своё нап
👩‍💻 Программирование теперь в Telegram! Вот 8 обучающих каналов по самым востребованным направлениям в IT. Выбирай своё направление: 👩‍💻 Java: @java_ready 📖 Общее IT: @roadmap_ready 👩‍💻 Python: @python_ready 👩‍💻 C#: @csharp_ready 👩‍💻 C/C++: @cpp_ready 👩‍💻 Frontend: @code_ready 🖥 Базы Данных & SQL: @sql_ready 🖥 Design: @time_design 📌 Ресурсы, гайды, шпаргалки, книги, задачи и статьи для каждого языка программирования.

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

public class Quest {
    public static void main(String[] args) {
        List<Integer> ints = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9);
        ints.stream()
            .filter(i -> i % 2 == 0)
            .skip(1)
            .limit(1)
            .forEach(System.out::print);
    }
}
#java #quest

Мечтаешь о карьере в бигтехе? Приходи на интенсив в Открытые школы Т1 для Java-разработчиков с опытом от года. Это возможност
Мечтаешь о карьере в бигтехе? Приходи на интенсив в Открытые школы Т1 для Java-разработчиков с опытом от года. Это возможность получить оффер от Т1 — крупнейшей ИТ-компании страны по версии RAEX и CNews Analytics 2023 🔝, в портфеле которой 800+ масштабных проектов и 70+ продуктов и услуг. Поддержка наставников и советы HR помогают пройти интервью в Т1 успешнее, а карьерный трек позволяет выпускникам программы быстрее вырасти из джуна в мидла в Т1. Почему в Т1 классно? 🔹Уникальный рыночный опыт. Наши проекты ежегодно получают награды на ИТ-конкурсах: Global CIO, Национальной банковской премии и др. 🔹Быстрый рост в ИТ при экспертной поддержке. Карьерные треки для выпускников Открытых школ позволяют быстро вырасти в мидла. 🔹Работа в бигтехе, где есть ДМС, удалёнка и крутые офисы, спорт и обучение, митапы, программы развития и др. ⌛️ Быстрое обучение: 1 месяц. 💻 Гибкий формат: все этапы онлайн, занятия по вечерам. Подавай заявку до 13 сентября! Старт 16 сентября. Реклама. ООО "Т1". ИНН 7720484492.

От всей души поздравляю всех программистов и им сочувствующих! 🎉 Пусть код всегда будет чистым, как слеза, проекты — увлекат
От всей души поздравляю всех программистов и им сочувствующих! 🎉 Пусть код всегда будет чистым, как слеза, проекты — увлекательными и вдохновляющими, а коллеги — понимающими и дружелюбными! Желаю тебе легких решений сложных задач и бесконечного потока креатива. Пусть каждый день приносит новые вызовы и радости в мир программирования! 🚀

⌨️ Усечение потока данных. Метод limit Потоки данных поддерживают метод limit(n). Он возвращает еще один поток, не превышающий заданную длину, переданную в limit в виде аргумента. Если поток данных упорядоченный, возвращаются первые элементы, но не более чем n. Например, с помощью следующего кода можно создать List, выбрав первые три блюда, содержащие более 300 калорий:

List<Dish> dishes = specialMenu
    .stream()
    .filter(dish -> dish.getCalories() > 300)
    .limit(3)
    .collect(toList());
Метод limit работает и для неупорядоченных потоков данных (например, когда источник представляет собой объект типа Set). В этом случае не следует исходить из допущения о какой-либо упорядоченности результата, возвращенного методом limit. #java #stream #limit

⚡ Когда мне говорят, что Java слишком простой язык, я показываю канал Java Learning Здесь я научился: ▪️ Разрабатывать высоко
Когда мне говорят, что Java слишком простой язык, я показываю канал Java Learning Здесь я научился: ▪️ Разрабатывать высоконагруженные серверные приложения ▪️ Управлять сложными базами данных ▪️ Организовывать эффективную многопоточную обработку данных ▪️ Проходить технические собеседования в ведущие IT-компании Самый необычный канал про Java, подписывайся@Java_per_month

⌨️ Срезы в стримах. Метод dropWhile Операция dropWhile служит дополнением к операции takeWhile. Она отбрасывает первые элементы, для которых предикат возвращает true. Как только результат вычисления предиката становится ложным, она прекращает работу и возвращает все оставшиеся элементы, причем работает даже в том случае, если число оставшихся элементов бесконечно!

List<Integer> ints = List.of(1,2,3,4,5,6,7,8,9);
ints.stream()
    .dropWhile(i -> i < 5)
    .forEach(System.out::println);
// 5 6 7 8 9
#java #stream #dropWhile

Представьте себе мир, где вы создаёте игры и приложения, которые покоряют сердца миллионов пользователей. Ваши идеи оживают н
Представьте себе мир, где вы создаёте игры и приложения, которые покоряют сердца миллионов пользователей. Ваши идеи оживают на экранах смартфонов и компьютеров, а вы наслаждаетесь свободой и гибкостью фриланса. Java — один из самых популярных языков программирования, который используют разработчики для создания различных приложений. Если вы давно мечтаете попробовать себя в этой сфере, скорее записывайтесь на мини-курс по Java-разработке: https://epic.st/OLS_K2?erid=2VtzquiRuaV 🎉 Подарок за регистрацию — гайд по профессии Java-разработчика. Формат мини-курса отлично подойдёт для обучения из любой точки мира: смотрите видео в удобное время и закрепляйте навыки на практике. Больше не надо искать свободное время, чтобы прийти на вечерний вебинар, или ждать записи в случае пропуска. Хватит мечтать, пора реализовывать! Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

⌨️ Срезы в стримах. Метод 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