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

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

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

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

إظهار المزيد
6 726
المشتركون
لا توجد بيانات24 ساعات
-187 أيام
-7430 أيام

جاري تحميل البيانات...

جذب المشتركين
أكتوبر '26
أكتوبر '26
+2
في 0 قنوات
سبتمبر '26
+27
في 0 قنوات
Get PRO
أغسطس '26
+51
في 9 قنوات
Get PRO
يوليو '26
+38
في 0 قنوات
Get PRO
يونيو '26
+98
في 0 قنوات
Get PRO
مايو '26
+128
في 10 قنوات
Get PRO
أبريل '26
+52
في 1 قنوات
Get PRO
مارس '26
+51
في 8 قنوات
Get PRO
فبراير '26
+42
في 3 قنوات
Get PRO
يناير '26
+38
في 0 قنوات
Get PRO
ديسمبر '25
+75
في 25 قنوات
Get PRO
نوفمبر '25
+108
في 11 قنوات
Get PRO
أكتوبر '25
+50
في 0 قنوات
Get PRO
سبتمبر '25
+28
في 6 قنوات
Get PRO
أغسطس '25
+187
في 24 قنوات
Get PRO
يوليو '25
+156
في 16 قنوات
Get PRO
يونيو '25
+169
في 29 قنوات
Get PRO
مايو '25
+221
في 32 قنوات
Get PRO
أبريل '25
+290
في 35 قنوات
Get PRO
مارس '25
+291
في 32 قنوات
Get PRO
فبراير '25
+1 295
في 114 قنوات
Get PRO
يناير '25
+292
في 14 قنوات
Get PRO
ديسمبر '24
+196
في 1 قنوات
Get PRO
نوفمبر '24
+302
في 21 قنوات
Get PRO
أكتوبر '24
+439
في 9 قنوات
Get PRO
سبتمبر '24
+226
في 1 قنوات
Get PRO
أغسطس '24
+281
في 3 قنوات
Get PRO
يوليو '24
+462
في 16 قنوات
Get PRO
يونيو '24
+229
في 1 قنوات
Get PRO
مايو '24
+395
في 9 قنوات
Get PRO
أبريل '24
+874
في 9 قنوات
Get PRO
مارس '24
+408
في 6 قنوات
Get PRO
فبراير '24
+339
في 7 قنوات
Get PRO
يناير '24
+330
في 5 قنوات
Get PRO
ديسمبر '23
+595
في 10 قنوات
Get PRO
نوفمبر '23
+663
في 12 قنوات
Get PRO
أكتوبر '23
+656
في 8 قنوات
Get PRO
سبتمبر '23
+538
في 0 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
06 أكتوبر0
05 أكتوبر0
04 أكتوبر+1
03 أكتوبر0
02 أكتوبر+1
01 أكتوبر0
منشورات القناة
Цепочка методов (Method chaining) — это общий синтаксис для нескольких вызовов методов в объектно-ориентированных языках прог
Цепочка методов (Method chaining) — это общий синтаксис для нескольких вызовов методов в объектно-ориентированных языках программирования. Каждый метод возвращает объект, что позволяет объединить вызовы в один оператор без необходимости использования переменных для хранения промежуточных результатов. Пример для String:

text = text
        .trim()
        .replace("?", "")
        .replace(" ", "-")
        .toLowerCase();
Для того чтобы сделать такую штуку в своем классе, нужно что бы каждый метод возвращал из метода ссылку на текущий объект (this).

2
🤺 Почему ты получаешь отказ после «норм собеса»? Дело не в знаниях — ты просто не знаешь, что реально проверяют на собеседов
🤺 Почему ты получаешь отказ после «норм собеса»? Дело не в знаниях — ты просто не знаешь, что реально проверяют на собеседованиях. Решение — знать, чего от тебя ждёт интервьюер, и уметь правильно донести свою мысль. Для этого ребята из ШОРТКАТ (менторской программы для разработчиков) собрали в один файл ОТВЕТЫ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥 Они проанализировали более 100 мок-интервью и собрали внутри реальные вопросы + ответы сильного кандидата. ⚠️ Забрать можно бесплатно в боте — @shortcut_sh_bot В том же боте ты сможешь зарегаться на эфир с бесплатным тестовым интервью на Java-разработчика! Эфир пройдёт 7 октября в 19:00 МСК. Его проведёт Виктор Анохин — Senior-разработчик из Wildberries, ex-Билайн. Ты сможешь вживую услышать, какие вопросы задают на собесах в топовых компаниях, и лично задать вопрос ментору из бигтеха 🔝 Всё это бесплатно, тебе нужно только нажать на ссылку и забрать все плюшки ↓ @shortcut_sh_bot Реклама. О рекламодателе.
382
3
⌨️ Несколько способов для избежания NullPointerException: 👉 Используйте Optional из пакета java.util. 👉 При сравнении константы с переменной пришедшей из вне, нужно вызывать equals() на константе. 👉 А при сравнении двух переменных используйте java.util.Objects#equals. 👉 Используйте библиотеки с null-безопасностью, например, Apache Commons StringUtils. 👉 Вызывайте методы equals() и equalsIgnoreCase() на известных объектах. 👉 Применяйте valueOf() вместо toString(). 👉 Воспользуйтесь аннотациями @NotNull и @Nullable на основе IDE. 👉 При возврате из метода коллекций, не стоит возвращать null, лучше пустую коллекцию (java.util.Collections#emptyList).
655
4
⚡️⚡️Строки кода стремятся подешеветь до цены токена. Что остается ценным? Про это — трек «Замысел» 15 октября. Во второй день+4
⚡️⚡️Строки кода стремятся подешеветь до цены токена. Что остается ценным? Про это — трек «Замысел» 15 октября. Во второй день Joker, посвященный разработке будущего. О том, как человек понимает, почему он называет что-то проблемой, и формулирует свою цель, а не ту, что навязана ему извне. Теперь это общая работа для всех ролей, от разработчика до CEO: шаблонными решениями и готовыми схемами думает модель. В карточках к посту рассказываем, почему так получилось, и показываем доклады из трека: спикеры расскажут, о чем нужно подумать еще до постановки задачи, и чем будет заниматься новый тип инженера — Context Engineer. К дискуссиям после докладов — собираем ваши кейсы. Напишите в комментариях поста, если у вас бывало такое: — агент час работал не над той задачей, потому что задача была сформулирована плохо; — ускорение одного этапа не сдвинуло общий срок; — узким местом оказалась не модель или инфраструктура, а знание, которое никто не записал. Joker 2026 — 14–15 октября, Санкт-Петербург и онлайн. 🌟По промокоду javatipsandtricks персональные билеты дешевле 🔜🔜Исследуйте разработку будущего — на сайте Joker. Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
649
5
Метод retainAll() Метод retainAll() интерфейса Collection, удаляет из коллекции все элементы, не содержащиеся в переданной ко
Метод retainAll() Метод retainAll() интерфейса Collection, удаляет из коллекции все элементы, не содержащиеся в переданной коллекции. По сути оставляет в коллекции только пересекающиеся элементы из двух коллекций. boolean retainAll(Collection<?> c); Параметры: c – коллекция, содержащая элементы, которые следует сохранить в коллекции. Возврат: true, если коллекция изменилась в результате вызова
684
6
Метод putIfAbsent() интерфейса Map. Если указанный ключ еще не связан со значением (или сопоставлен со значением null), он св
Метод putIfAbsent() интерфейса Map. Если указанный ключ еще не связан со значением (или сопоставлен со значением null), он связывает его с заданным значением и возвращает значение null, в противном случае возвращается текущее значение. default V putIfAbsent(K key, V value) { V v = get(key); if (v == null) { v = put(key, value); } return v; } Параметры: key – ключ, с которым должно быть связано указанное значение. value – значение, которое должно быть связано с указанным ключом. Возврат: предыдущее значение, связанное с указанным ключом, или значение null, если для ключа не было сопоставления. Возврат null может также указывать на то, что мапа ранее ассоциировала с ключом значение null, если реализация поддерживает значения null.
881
7
Ищете облачную платформу? Есть Beget ✅ Аптайм 99,98% в дата-центрах Tier III ✅ Техподдержка 24/7 — живые люди, без ботов ✅ Пр
Ищете облачную платформу? Есть Beget ✅ Аптайм 99,98% в дата-центрах Tier III ✅ Техподдержка 24/7 — живые люди, без ботов ✅ Прозрачная оплата без скрытых платежей ✅ Более 200 000 клиентов доверяют Beget Узнать больше
415
8
⌨️ Можно ли объявить метод абстрактным и статическим одновременно? Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.
826
9
Кто сказал, что начинать надо с малого? Тестировать цифровых двойников или настраивать проход по лицу в метро — неплохо для с
Кто сказал, что начинать надо с малого? Тестировать цифровых двойников или настраивать проход по лицу в метро — неплохо для старта карьеры, правда? А еще это отличный способ обнаружить у себя новую ИТ-суперспособность. Т1 — это бигтех для бизнеса и одна из крупнейших аккредитованных ИТ-компаний России. Здесь молодые специалисты получают реальные задачи: можно работать с большими данными, участвовать в разработке решений для ритейла, создавать инструменты для обучения и общения и многое другое. И все это: ✅ онлайн из любой точки страны; ✅ под руководством наставника; ✅ удобно совмещать с учебой. Для старта карьеры ИТ-холдинг выбрали уже более 4 000 студентов из 300+ вузов. ⚡ Присоединяйся и узнай, какая суперспособность в ИТ твоя. Перейти на сайт #реклама 16+ career.t1.ru О рекламодателе
501
10
⌨️ Где и для чего используется модификатор abstract? Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов. Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным. Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
1 114
11
Чем умнее AI, тем актуальнее математика❗️ В век нейросетей легко получить готовый ответ. Сложнее понять, откуда он взялся, и
Чем умнее AI, тем актуальнее математика❗️ В век нейросетей легко получить готовый ответ. Сложнее понять, откуда он взялся, и проверить его на правильность. И здесь не обойтись без понимания математики. Тот, кто понял, восстановит любой факт, адаптирует его под задачу и сможет направить AI в нужную сторону. Хороший запрос, проверку и интерпретацию делает не модель, а человек, который глубоко понимает предметную область. 📈 @lav_math — канал о высшей математике и математической жизни. Канал про умение чувствовать математику и видеть взаимосвязи. Автор — выпускник СПбГУ, к.ф.-м.н., научный сотрудник РАН, преподаёт в СПбГУ и ИТМО. Что внутри: — Работа со всеми математическими дисциплинами; — Теория вероятностей и математическая статистика — один из основных профилей; — Онлайн-занятия и стримы на YouTube; — Контент для студентов технических направлений и тех, кто уже работает в IT, аналитике, Data Science. Посмотрите сами 👉 @lav_math
499
12
⌨️ void и Void В языке программирования Java ключевое слово void используется для указания, что метод не возвращает никакого значения. Метод с возвращаемым типом void выполняет определенные действия, но не производит результат, который можно было бы использовать в вызывающей части программы. Для void еще есть класс обёртка Void. Класс Void — это класс-заполнитель который нельзя создать и который хранит ссылку на объект Class, представляющий ключевое слово Java void. Этот класс можно использовать, например, в случаях, когда у вас есть обобщенный класс и вы хотите, чтобы метод ничего не возвращал (т.е. чтобы пользователь класса не ожидал ничего особенного оттуда получить): interface I<T> { T doStuff(); } class A implements I<Void> { @Override public Void doStuff() { // ничего другого вернуть нельзя return null; } } Или если в проекте регулярно используется Callable<T> для выполнения каких-то асинхронных задач и в тех ситуациях, когда результат работы задачи ничего не должен возвращать, можно реализовать Callable<Void>.
995
13
Хочешь спроектировать нормальную доменную модель, а вместо этого третий час пишешь геттеры и сеттеры для очередного DTO? Тепе
Хочешь спроектировать нормальную доменную модель, а вместо этого третий час пишешь геттеры и сеттеры для очередного DTO? Теперь это можно делегировать. CatCode - агент, который работает с проектом сам: пишет бойлерплейт, тесты, javadoc, гоняет сборку, пока ты занят чем-то более интересным. Доступны все топовые модели: 😒 Claude Opus 5 🤖 GPT-6 Astra 😐 Grok 4.6 и многие другие. Умный свитчер экономит токены - рутина уйдёт дешёвой модели, сложные задачи - нейросети покруче. Один лимит дешевле зоопарка отдельных подписок - всего 900 рублей в месяц. Оплата картой РФ или СБП, работает без VPN. Первые задачи бесплатно, просто зарегистрируйся и попробуй. Делегируй рутину уже сегодня: catcode.dev
549
14
⌨️ Что такое generics? Generics - это технический термин, обозначающий набор свойств языка позволяющих определять и использовать обобщенные типы и методы. Обобщенные типы или методы отличаются от обычных тем, что имеют типизированные параметры. Примером использования обобщенных типов может служить Java Collection Framework. Так, класс LinkedList<E> - типичный обобщенный тип. Он содержит параметр E, который представляет тип элементов, которые будут храниться в коллекции. Создание объектов обобщенных типов происходит посредством замены параметризированных типов реальными типами данных. Вместо того, чтобы просто использовать LinkedList, ничего не говоря о типе элемента в списке, предлагается использовать точное указание типа LinkedList<String>, LinkedList<Integer> и т.п.
884
15
Ищете облачную платформу? Есть Beget ✅ Аптайм 99,98% в дата-центрах Tier III ✅ Техподдержка 24/7 — живые люди, без ботов ✅ Пр
Ищете облачную платформу? Есть Beget ✅ Аптайм 99,98% в дата-центрах Tier III ✅ Техподдержка 24/7 — живые люди, без ботов ✅ Прозрачная оплата без скрытых платежей ✅ Более 200 000 клиентов доверяют Beget Узнать больше #реклама 16+ beget.com О рекламодателе
476
16
⌨️ Почему char[] предпочтительнее String для хранения пароля? С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
769
17
Сезон поиска работы только стартанул, а тут такие шишки: СТО, IT-директора и техлиды сами пришли и разместили вакансии. И тут+6
Сезон поиска работы только стартанул, а тут такие шишки: СТО, IT-директора и техлиды сами пришли и разместили вакансии. И тут можно даже написать руководителям напрямую: → CTO Альфа-Банка Кирилл Сафаров ищет руководителя портфеля цифровых продуктов на MLM-проект «Свой в Альфе»; → IT-директор Сергей Чернуха из «Филип Моррис Интернэшнл» в России в поиске сразу двух управляющих: IT-решениями для бизнеса и IT-инфраструктурой; → Руководитель направления инженерии и анализа данных в Контуре Юлия Лунёва приглашает продуктового аналитика-сеньора в направление веб-сервисов; → Техлид команды тестирования в Альфа-Банкее Егор Шохин ищет автотестировщика на C# уровня мидл+; → CTO МТС Банка Кирилл Золотарев ищет технического лидера в команду платежей; → Коммерческий директор Skillaz Андрей Синякин опубликовал вакансию директора по продукту
1 036
18
Метод Arrays.fill() для инициализации массива Класс java.util.Arrays имеет несколько методов с именем fill(), которые принимают разные типы аргументов и заполняют весь массив одним и тем же значением: long array[] = new long[5]; Arrays.fill(array, 30); У метода также есть несколько альтернатив, которые устанавливают диапазон массива в определенное значение: int array[] = new int[5]; Arrays.fill(array, 0, 3, -50); Обратите внимание, что метод принимает массив, индекс первого элемента, индекс последнего элемента (не включительно) и значение.
989
19
🔴 Тестовый собес с Java-разработчиком уже завтра! [+ разбор 50 сложных вопросов в подарок ] 16 сентября (уже завтра!) в 19:0
🔴 Тестовый собес с Java-разработчиком уже завтра!  [+ разбор 50 сложных вопросов в подарок ] 16 сентября (уже завтра!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Java-разработчика! Собеседование проведёт Виктор Анохин — Senior из Wildberries, ех-Билайн Как это будет: 📂 Виктор задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе 📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью 📂 В конце сможешь задать любой вопрос Виктору и получить на него развёрнутый ответ Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы И ты можешь посмотреть его бесплатно 🔥 Только завтра, в прямом эфире! 🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥 Переходи в бот, чтобы попасть на эфир и забрать подарок 👉 @shortcut_sh_bot Реклама. О рекламодателе.
483
20
⌨️ Чем абстрактный класс отличается от интерфейса? В каких случаях следует использовать абстрактный класс, а в каких интерфейс? В Java абстрактный класс и интерфейс представляют два различных механизма для достижения абстракции и обеспечения множественного наследования. Вот основные различия между ними: 1️⃣ Абстрактный класс (Abstract Class): 👉 Может содержать как абстрактные методы (методы без тела), так и обычные методы с реализацией. 👉 Может иметь переменные экземпляра (поля). 👉 Может содержать конструкторы. 👉 Поддерживает одиночное наследование: подкласс можно наследовать только от одного абстрактного класса. abstract class Animal { String name; abstract void makeSound(); void eat() { System.out.println(name + " is eating."); } } 2️⃣ Интерфейс (Interface): 👉 Содержит только абстрактные методы (в Java 8 и выше может содержать методы с реализацией, помеченные ключевым словом default). 👉 Не может иметь переменных экземпляра, кроме переменных, объявленных как static final. 👉 Не содержит конструкторов. 👉 Поддерживает множественное наследование: класс может реализовывать несколько интерфейсов. interface Animal { void makeSound(); void eat(); } Когда использовать: 👉 Используйте абстрактные классы, когда у вас есть общая реализация для нескольких классов и вы хотите предоставить базовый функционал. 👉 Используйте интерфейсы, когда вам нужна поддержка множественного наследования, или когда классы, возможно, уже наследуют от других классов. Обычно считается хорошей практикой использовать интерфейсы для определения контракта и абстрактные классы для предоставления базовой реализации. В Java 8 и более новых версиях с появлением интерфейсов с методами по умолчанию (default methods), различия стали менее явными, и выбор может зависеть от конкретной ситуации.
785