Java | Фишки и трюки
Ir al canal en Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg
Mostrar más6 726
Suscriptores
Sin datos24 horas
-187 días
-7430 días
Carga de datos en curso...
Canales Similares
Nube de Etiquetas
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
octubre '26oct '26
octubre '26
+2
en 0 canales
septiembre '26
+27
en 0 canales
Get PRO
agosto '26
+51
en 9 canales
Get PRO
julio '26
+38
en 0 canales
Get PRO
junio '26
+98
en 0 canales
Get PRO
mayo '26
+128
en 10 canales
Get PRO
abril '26
+52
en 1 canales
Get PRO
marzo '26
+51
en 8 canales
Get PRO
febrero '26
+42
en 3 canales
Get PRO
enero '26
+38
en 0 canales
Get PRO
diciembre '25
+75
en 25 canales
Get PRO
noviembre '25
+108
en 11 canales
Get PRO
octubre '25
+50
en 0 canales
Get PRO
septiembre '25
+28
en 6 canales
Get PRO
agosto '25
+187
en 24 canales
Get PRO
julio '25
+156
en 16 canales
Get PRO
junio '25
+169
en 29 canales
Get PRO
mayo '25
+221
en 32 canales
Get PRO
abril '25
+290
en 35 canales
Get PRO
marzo '25
+291
en 32 canales
Get PRO
febrero '25
+1 295
en 114 canales
Get PRO
enero '25
+292
en 14 canales
Get PRO
diciembre '24
+196
en 1 canales
Get PRO
noviembre '24
+302
en 21 canales
Get PRO
octubre '24
+439
en 9 canales
Get PRO
septiembre '24
+226
en 1 canales
Get PRO
agosto '24
+281
en 3 canales
Get PRO
julio '24
+462
en 16 canales
Get PRO
junio '24
+229
en 1 canales
Get PRO
mayo '24
+395
en 9 canales
Get PRO
abril '24
+874
en 9 canales
Get PRO
marzo '24
+408
en 6 canales
Get PRO
febrero '24
+339
en 7 canales
Get PRO
enero '24
+330
en 5 canales
Get PRO
diciembre '23
+595
en 10 canales
Get PRO
noviembre '23
+663
en 12 canales
Get PRO
octubre '23
+656
en 8 canales
Get PRO
septiembre '23
+538
en 0 canales
| Fecha | Crecimiento de Suscriptores | Menciones | Canales | |
| 06 octubre | 0 | |||
| 05 octubre | 0 | |||
| 04 octubre | +1 | |||
| 03 octubre | 0 | |||
| 02 octubre | +1 | |||
| 01 octubre | 0 |
Publicaciones del Canal
Цепочка методов (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 октября. Во второй день Joker, посвященный разработке будущего. О том, как человек понимает, почему он называет что-то проблемой, и формулирует свою цель, а не ту, что навязана ему извне. Теперь это общая работа для всех ролей, от разработчика до CEO: шаблонными решениями и готовыми схемами думает модель.
В карточках к посту рассказываем, почему так получилось, и показываем доклады из трека: спикеры расскажут, о чем нужно подумать еще до постановки задачи, и чем будет заниматься новый тип инженера — Context Engineer.
К дискуссиям после докладов — собираем ваши кейсы. Напишите в комментариях поста, если у вас бывало такое:
— агент час работал не над той задачей, потому что задача была сформулирована плохо;
— ускорение одного этапа не сдвинуло общий срок;
— узким местом оказалась не модель или инфраструктура, а знание, которое никто не записал.
Joker 2026 — 14–15 октября, Санкт-Петербург и онлайн.
🌟По промокоду javatipsandtricks персональные билеты дешевле
🔜🔜Исследуйте разработку будущего — на сайте Joker.
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446 | 649 |
| 5 | Метод retainAll()
Метод retainAll() интерфейса Collection, удаляет из коллекции все элементы, не содержащиеся в переданной коллекции. По сути оставляет в коллекции только пересекающиеся элементы из двух коллекций.
boolean retainAll(Collection<?> c);
Параметры:
c – коллекция, содержащая элементы, которые следует сохранить в коллекции.
Возврат:
true, если коллекция изменилась в результате вызова | 684 |
| 6 | Метод 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 — живые люди, без ботов
✅ Прозрачная оплата без скрытых платежей
✅ Более 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 в нужную сторону.
Хороший запрос, проверку и интерпретацию делает не модель, а человек, который глубоко понимает предметную область. 📈
@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? Теперь это можно делегировать.
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 — живые люди, без ботов
✅ Прозрачная оплата без скрытых платежей
✅ Более 200 000 клиентов доверяют Beget
Узнать больше
#реклама 16+
beget.com
О рекламодателе | 476 |
| 16 | ⌨️ Почему char[] предпочтительнее String для хранения пароля?
С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке. | 769 |
| 17 | Сезон поиска работы только стартанул, а тут такие шишки: СТО, 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: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 |
