ForkJoinPool — это
Особенность ForkJoinPool —
Где применяется:
-
-
-
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3🎉1
transient — это
Пример:
class User implements Serializable {
private String username;
private transient String password;
}
Когда использовать:
-
-
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3❤1🎉1
Reflection — это
С помощью Reflection можно:
▪️
▪️
▪️
Пример:
import java.lang.reflect.Method;
public class ReflectionExample {
public static void main(String[] args) throws Exception {
// Класс, который будем исследовать
Class<?> clazz = Class.forName("java.lang.String");
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
System.out.println("Метод: " + method.getName());
}
}
}
- Reflection делает код менее безопасным и сложным для понимания.
- Это может снижать производительность программы. Используйте его только при необходимости.
- В современных приложениях, например, с Spring, Reflection часто используется для Dependency Injection или работы с аннотациями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4🎉2
Существует 4 типа ссылок, которые определяют, как объект будет обрабатываться сборщиком мусора (Garbage Collector).
Это ссылки, которые используются по умолчанию.
String strongRef = new String("Strong Reference");
Объект, на который указывает сильная ссылка, никогда не будет удален сборщиком мусора, пока существует эта ссылка.
Используйте, когда объект нужен в течение всего времени выполнения.
Создаются с помощью класса SoftReference. Soft ссылка удерживает объект в памяти, пока в JVM достаточно свободной памяти. Если памяти не хватает, объект будет удален.
SoftReference<String> softRef = new SoftReference<>(new String("Soft Reference"));
String softObj = softRef.get();
Удобны для реализации кэшей. Например, если объект можно восстановить, но не хочется держать его в памяти постоянно.
Сборщик мусора удаляет объекты, на которые ссылаются мягкие ссылки, только в случае нехватки памяти.
Создаются с помощью класса WeakReference. Объект, на который ссылается слабая ссылка, удаляется сборщиком мусора, как только на него больше нет сильных или мягких ссылок.
WeakReference<String> weakRef = new WeakReference<>(new String("Weak Reference"));
String weakObj = weakRef.get();
Часто используются в структурах данных, таких как WeakHashMap, для предотвращения удержания ненужных объектов.
Удобны для создания ссылок на временные объекты.
Создаются с помощью класса PhantomReference. Эти ссылки используются исключительно для отслеживания, когда объект будет удален сборщиком мусора.
PhantomReference<String> phantomRef = new PhantomReference<>(new String("Phantom Reference"), new ReferenceQueue<>());
Метод get() у фантомной ссылки всегда возвращает null.
Объекты, на которые ссылаются фантомные ссылки, добавляются в ReferenceQueue, когда сборщик мусора их удаляет.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7🎉2
Интерфейсы Comparable и Comparator используются для
🔹 Comparable определяет
Единственный метод – compareTo(T o):
@Override
public int compareTo(Person other) {
return Integer.compare(this.age, other.age);
}
Удобно, когда у объекта есть однозначный критерий сравнения. Например, сортировка по возрасту
🔹 Comparator позволяет создавать
Основной метод – compare(T o1, T o2):
Comparator<Person> byName = (p1, p2) -> p1.getName().compareTo(p2.getName());
Используется для различных критериев сравнения, например, сортировка по имени или другим атрибутам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2👾1
JRE (Java Runtime Environment) — это
▪️ JRE включает:
-
-
-
JRE используется для
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5❤2👏1🤔1
🗺 Привычка "срезать углы" при ходьбе – это интуитивное применение алгоритмов?
Так работает жадный алгоритм: вы выбираете наиболее выгодный шаг в каждый момент времени, чтобы минимизировать общий путь. То же самое применяют разработчики, создавая маршруты для такси или доставок.
С нашим курсом «Алгоритмы и структуры данных» вы научитесь решать любые сложные задачи так же эффективно.
🎄Начните свой 2025 со скидкой 35% на все курсы. Это лучшее вложении уходящего года – https://proglib.io/w/014fe6d8
Так работает жадный алгоритм: вы выбираете наиболее выгодный шаг в каждый момент времени, чтобы минимизировать общий путь. То же самое применяют разработчики, создавая маршруты для такси или доставок.
С нашим курсом «Алгоритмы и структуры данных» вы научитесь решать любые сложные задачи так же эффективно.
🎄Начните свой 2025 со скидкой 35% на все курсы. Это лучшее вложении уходящего года – https://proglib.io/w/014fe6d8
JVM (Java Virtual Machine) — это
▪️ Как работает JVM?
-
-
-
-
▪️ Ключевые особенности JVM:
-
-
-
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3🤔2🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Proglib рассказывает про любимый язык програмирования в формате рилса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🌚1
Планируете ли Вы готовиться к собеседованиям на новогодних праздниках?
👍🏼 - Конечно, выкладывайте вопросы как раньше
🌚 - Буду отдыхать и веселиться. Выложите что-то ещё
Поделитесь в комментариях, что на новогодние было бы интересно почитать, помимо постов по тематике канала?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🌚8🔥2
Метод String.intern() возвращает строку из пула строк (String Pool), если такая строка уже существует, либо добавляет строку в пул, если её там ещё нет. Это может быть полезно для оптимизации памяти, особенно при работе с большим количеством дублирующихся строк.
String Pool — это специальная область памяти в JVM, где хранятся уникальные строковые литералы. Когда мы вызываем intern(), JVM ищет строку в пуле:
Если строка найдена, возвращается ссылка на неё.
Если строка не найдена, она добавляется в пул, и возвращается новая ссылка.
🧨 Опасности использования:
— Перегрузка пула строк:
Если бездумно вызывать intern() на огромном количестве уникальных строк, можно исчерпать доступную память.
— Скрытые проблемы многопоточности:
Если несколько потоков одновременно вызывают intern() на строке, это может привести к задержкам или даже к дедлокам в JVM.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1🎉1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤2👍2
Абстрактные классы и интерфейсы используются для
- Реализация: Абстрактный класс может содержать поля и методы с реализацией. В то время как интерфейс (до Java 8) не мог иметь методы, после Java 8 в интерфейсах появились default методы. Поля в интерфейсах могут быть только public static final.
- Когда выбирать: Абстрактный класс — для объектов с общим поведением, интерфейсы — для описания возможностей или контрактов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥6👏2🎉1
JDBC (Java Database Connectivity) — это
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤5
Dependency Injection (внедрение зависимостей) — это один из основных паттернов проектирования в программировании, который позволяет объектам получать свои зависимости извне, вместо того чтобы создавать их внутри себя.
DI способствует:
— Слабой связанности между компонентами.
— Легкости тестирования за счет использования mock-объектов.
— Повторному использованию кода.
Основные способы внедрения зависимостей:
🔹 Constructor Injection
Зависимости передаются через конструктор.
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
}
🔹Setter Injection
Зависимости передаются через сеттеры.
public class Service {
private Repository repository;
public void setRepository(Repository repository) {
this.repository = repository;
}
}
🔹 Field Injection
Зависимости внедряются напрямую в поля класса (обычно с помощью фреймворков, например Spring).
@Component
public class Service {
@Autowired
private Repository repository;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4👏1
Что бы вы хотели получить в качестве подарка в розыгрыше?
Anonymous Poll
13%
📚Книги по разработке
13%
🧑🏽🎓IT-курсы
7%
🧳 Карьерные консультации, чтобы получить оффер мечты
32%
🖥️ Компьютер или ноутбук
11%
💾 Мощные комплектующие для ПК
5%
🎮 Игровая приставка
4%
🤖 Гаджеты для дома: робот-пылесос, проектор и т. д.
9%
👩🏽💻 Подписки на GitHub Copilot, JetBrains, LinkedIn Premium и т. д.
5%
🥂 Оплаченная поездка на IT-конференцию или хакатон
0%
👇🏼 Другой вариант (напишу в комментариях)
🔥7👍2🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4🎉2
BeanFactory и ApplicationContext — это
🔹 Основная разница:
BeanFactory предоставляет
ApplicationContext
🔹 Ленивая загрузка бинов:
BeanFactory загружает бины
ApplicationContext загружает
🔹 Дополнительные возможности ApplicationContext:
Обработка
Поддержка
Упрощенная интеграция с
🔹 Использование:
BeanFactory обычно используется для
ApplicationContext — выбор для
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥5🎉2
🎄 Начни 2025-й с апгрейдом навыков,
которые откроют двери в мир IT!
Ты можешь собрать свой персональный план обучения с помощью нашего новогоднего конструктора. Это шанс не просто начать год с полезных знаний, но и сделать инвестицию в своё будущее, которая окупится многократно.
🔗 Собери свой план и начни путь в IT
Почему это выгодно?
📚 Несколько программ по цене одной — максимальная эффективность: учишься сразу тому, что действительно нужно.
💾 Бессрочный доступ — все материалы всегда под рукой, чтобы учиться в своём темпе.
💸 Знания, которые окупятся — навыки, востребованные в любой точке мира.
Какие навыки ты можешь прокачать?
💡 Математика для Data Science + Алгоритмы и структуры данных
— Подготовка к собеседованиям в FAANG и поступлению в ШАД. Решай сложные задачи, работай с данными и моделями на профессиональном уровне.
💡 Алгоритмы и структуры данных + ML
— Улучшай своё алгоритмическое мышление и изучай базовые методы машинного обучения, чтобы создавать интеллектуальные приложения.
💡 Frontend Basic + Базовые модели ML
— Построй свою первую веб-страницу и погрузись в мир ML: от нейросетей до ML-бустинга.
💡 Архитектуры и шаблоны проектирования + Математика для Data Science
— Развивай аналитическое мышление и учись проектировать устойчивые системы.
💡 Алгоритмы и структуры данных + Frontend Basic
— Получи полный набор навыков: от оптимизации алгоритмов до создания современных веб-приложений.
Не упусти шанс сделать шаг в будущее! Новый год — это время обновлений, и твоя карьера может стать одним из них.
🔗 Составь свой IT-маршрут сейчас или выбери курс по новогодней скидке
которые откроют двери в мир IT!
Ты можешь собрать свой персональный план обучения с помощью нашего новогоднего конструктора. Это шанс не просто начать год с полезных знаний, но и сделать инвестицию в своё будущее, которая окупится многократно.
🔗 Собери свой план и начни путь в IT
Почему это выгодно?
📚 Несколько программ по цене одной — максимальная эффективность: учишься сразу тому, что действительно нужно.
💾 Бессрочный доступ — все материалы всегда под рукой, чтобы учиться в своём темпе.
💸 Знания, которые окупятся — навыки, востребованные в любой точке мира.
Какие навыки ты можешь прокачать?
💡 Математика для Data Science + Алгоритмы и структуры данных
— Подготовка к собеседованиям в FAANG и поступлению в ШАД. Решай сложные задачи, работай с данными и моделями на профессиональном уровне.
💡 Алгоритмы и структуры данных + ML
— Улучшай своё алгоритмическое мышление и изучай базовые методы машинного обучения, чтобы создавать интеллектуальные приложения.
💡 Frontend Basic + Базовые модели ML
— Построй свою первую веб-страницу и погрузись в мир ML: от нейросетей до ML-бустинга.
💡 Архитектуры и шаблоны проектирования + Математика для Data Science
— Развивай аналитическое мышление и учись проектировать устойчивые системы.
💡 Алгоритмы и структуры данных + Frontend Basic
— Получи полный набор навыков: от оптимизации алгоритмов до создания современных веб-приложений.
Не упусти шанс сделать шаг в будущее! Новый год — это время обновлений, и твоя карьера может стать одним из них.
🔗 Составь свой IT-маршрут сейчас или выбери курс по новогодней скидке
👍1
Сигнатура метода — это
▪️
▪️
Важно: возвращаемый тип и модификаторы доступа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🎉3🔥2👏1
MVC (Model-View-Controller) — это
-
-
-
-
-
-
-
-
-
MVC помогает
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🎉5👍3