
На майских в Telegram — больше читателей и отклика
Планируйте посты со скидкой 3,5% по промокоду HAPPYMAY с 28 апреля по 15 мая
Получить скидку
12.9

Java Portal | Программирование
Поделиться
В избранное
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
- 3/72
- Нативный
- 7 дней
- Репост
1 час в топе / 24 часа в ленте
Количество:
%keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
4 195.80₽4 195.80₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
imageИзображение не доступно для предпросмотра
Курс по конкурентному программированию от Ильи Сергеева
Если хочешь разобраться в параллельности, потоках, акторной модели и распределёнке — лови топовый курс от препода Yale-NUS
— Scala для конкурентного кода
— Мьютексы, блокировки, атомики
— Futures и async
— Акторы и обмен сообщениями
— Распределённый консенсус (в т.ч. BFT)
Можешь поблагодарить лукасом😍
👉 Java Portal
Если хочешь разобраться в параллельности, потоках, акторной модели и распределёнке — лови топовый курс от препода Yale-NUS
— Scala для конкурентного кода
— Мьютексы, блокировки, атомики
— Futures и async
— Акторы и обмен сообщениями
— Распределённый консенсус (в т.ч. BFT)
Можешь поблагодарить лукасом
733
16:07
08.05.2025
В Java лямбда-выражение создаёт экземпляр функционального интерфейса. Во время выполнения этот экземпляр создаётся с помощью класса
Следующий код на Java создаёт объект
Во время выполнения объект создаётся с помощью кода, аналогичного следующему:
При выполнении этот код выведет в консоль❤️
👉 Java Portal
LambdaMetaFactory
Следующий код на Java создаёт объект
Function<String, String>
Function<String, String> f = s -> s.toUpperCase();
Во время выполнения объект создаётся с помощью кода, аналогичного следующему:
@SuppressWarnings("unchecked")
void main() throws Throwable {
MethodHandles.Lookup lookup;
lookup = MethodHandles.lookup();
CallSite callSite;
callSite = LambdaMetafactory.metafactory(
lookup,
"apply",
MethodType.methodType(Function.class),
MethodType.methodType(Object.class, Object.class),
lookup.findStatic(
getClass(),
"lambda",
MethodType.methodType(String.class, String.class)
),
MethodType.methodType(String.class, String.class)
);
MethodHandle target;
target = callSite.getTarget();
Function<String, String> f;
f = (Function<String, String>) target.invokeExact();
String msg;
msg = f.apply("Hello, World!");
IO.println(msg);
}
private static String lambda(String s) {
return s.toUpperCase();
}
При выполнении этот код выведет в консоль
HELLO, WORLD!
1100
06:07
08.05.2025
play_circleВидео недоступно для предпросмотра
Имбовая библиотека цветов для Kotlin Multiplatform
Если ты пилишь на Kotlin и хочешь красивые цвета под любую платформу — зацени compose-pipette
Поддерживает:
> JVM
> Android (от API 21)
> Kotlin/JS
> Kotlin/WASM
> macOS (пока не тестили)
> iOS (тоже не тестили)
Поддержи пост лайком❤️
👉 Java Portal
Если ты пилишь на Kotlin и хочешь красивые цвета под любую платформу — зацени compose-pipette
Поддерживает:
> JVM
> Android (от API 21)
> Kotlin/JS
> Kotlin/WASM
> macOS (пока не тестили)
> iOS (тоже не тестили)
Поддержи пост лайком
1400
08:10
07.05.2025
imageИзображение не доступно для предпросмотра
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?
Психолог взрослого человека — канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам.
✔️ Как научиться отвлекаться от работы и отдыхать?
✔️ Как совместить кучу рабочих задач и время с семьей?
✔️ Как справиться с прокрастинацией?
✔️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит?
Подписывайтесь на канал @vadimpetrovpsi и научитесь работать без упахивания, выгорания и ущерба для личной жизни!
👨🏻💻 Псс. Заходите в закреп — там много полезного, и даже бесплатный мини-курс по выходу из апатии: https://t.me/+qYR5T3w5Yg41ZTQy
Психолог взрослого человека — канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам.
✔️ Как научиться отвлекаться от работы и отдыхать?
✔️ Как совместить кучу рабочих задач и время с семьей?
✔️ Как справиться с прокрастинацией?
✔️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит?
Подписывайтесь на канал @vadimpetrovpsi и научитесь работать без упахивания, выгорания и ущерба для личной жизни!
👨🏻💻 Псс. Заходите в закреп — там много полезного, и даже бесплатный мини-курс по выходу из апатии: https://t.me/+qYR5T3w5Yg41ZTQy
1300
06:10
07.05.2025
Strategy Pattern без занудства
Ситуация: вы пишете платёжную систему
У вас есть
Вы пишете:
Потом добавляют PayPal, UPI, крипту, Apple Pay, кошельки, NetBanking и тд..😢
Теперь ваш метод выглядит вот так:
Вы тонете в аду
> Вы трогаете старый код
> Рискуете сломать существующую логику
> Нельзя нормально протестировать стратегии
> Нарушается принцип OCP (Open/Closed)
В чём настоящая проблема?
1. Ваш код слишком жёстко связан с конкретными реализациями оплат
2. Добавление новых стратегий требует изменения существующего кода
3. Тестировать/переиспользовать отдельные стратегии — сложно
4.
Как Strategy Pattern вас спасает
1. Создаёшь интерфейс PaymentStrategy
2. Для каждой оплаты — свой класс:
3.
☑ Добавить новый способ? Просто пишешь новый класс
☑ Никаких
☑ Стратегии изолированы и легко тестируются
👉 Java Portal
Ситуация: вы пишете платёжную систему
У вас есть
PaymentService
, поддерживающий оплату кредитной картой.Вы пишете:
public void pay(String method) {
if (method.equals("creditcard")) {
// логика оплаты кредиткой
}
}
Потом добавляют PayPal, UPI, крипту, Apple Pay, кошельки, NetBanking и тд..
Теперь ваш метод выглядит вот так:
if (method.equals("creditcard")) {
// логика кредитки
} else if (method.equals("paypal")) {
// логика PayPal
} else if ...
Вы тонете в аду
if-else
. Каждый раз при добавлении нового способа оплаты:> Вы трогаете старый код
> Рискуете сломать существующую логику
> Нельзя нормально протестировать стратегии
> Нарушается принцип OCP (Open/Closed)
В чём настоящая проблема?
1. Ваш код слишком жёстко связан с конкретными реализациями оплат
2. Добавление новых стратегий требует изменения существующего кода
3. Тестировать/переиспользовать отдельные стратегии — сложно
4.
PaymentService
теперь отвечает за слишком многоеКак Strategy Pattern вас спасает
1. Создаёшь интерфейс PaymentStrategy
2. Для каждой оплаты — свой класс:
CreditCardPayment, PayPalPayment, UPIPayment
3.
PaymentService
просто вызывает .pay()
на нужной стратегииif-else
interface PaymentStrategy {
void pay(int amount);
}
class CreditCardPayment implements PaymentStrategy {
public void pay(int amount) {
System.out.println("Плачу " + amount + " с помощью кредитки");
}
}
class PayPalPayment implements PaymentStrategy {
public void pay(int amount) {
System.out.println("Плачу " + amount + " через PayPal");
}
}
1300
05:07
07.05.2025
imageИзображение не доступно для предпросмотра
Шпаргалка по Map-реализациям
Если путаешься в
> HashMap — быстрая, но не потокобезопасная. Подходит для общего использования
> LinkedHashMap — сохраняет порядок вставки
> TreeMap — сортирует по ключам.
> Hashtable — потокобезопасна, но старая и медленная
> ConcurrentHashMap — оптимальна для многопоточности
> EnumMap — супербыстрая для enum-ключей
> IdentityHashMap — использует
> WeakHashMap — ключи могут быть удалены GC. Полезно для кэшей
Не забывай про null-ключи, производительность, порядок —> всё это влияет на выбор структуры данных💖
👉 Java Portal
Если путаешься в
HashMap, TreeMap, ConcurrentHashMap
— лови таблицу сравнения> HashMap — быстрая, но не потокобезопасная. Подходит для общего использования
> LinkedHashMap — сохраняет порядок вставки
> TreeMap — сортирует по ключам.
> Hashtable — потокобезопасна, но старая и медленная
> ConcurrentHashMap — оптимальна для многопоточности
> EnumMap — супербыстрая для enum-ключей
> IdentityHashMap — использует
==
вместо .equals()
> WeakHashMap — ключи могут быть удалены GC. Полезно для кэшей
Не забывай про null-ключи, производительность, порядок —> всё это влияет на выбор структуры данных
1400
16:07
06.05.2025
imageИзображение не доступно для предпросмотра
Хочешь, чтобы Swagger UI был доступен без авторизации в Spring Boot?
Просто добавь его в белый список:
Так разработчики смогут спокойно тестировать и изучать API без входа в систему
👉 Java Portal
Просто добавь его в белый список:
.antMatchers("/swagger-ui/", "/v3/api-docs/").permitAll()
Так разработчики смогут спокойно тестировать и изучать API без входа в систему
1500
06:07
06.05.2025
imageИзображение не доступно для предпросмотра
1600
16:07
05.05.2025
imageИзображение не доступно для предпросмотра
1900
16:07
04.05.2025
imageИзображение не доступно для предпросмотра
1800
16:07
03.05.2025
close
С этим каналом часто покупают
Отзывы канала
Отзывов нет
Новинки в тематике
Лучшие в тематике
Выбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий