JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Создание объектов через рефлексию

    JAVA 25 SELF
    62 уровень,3 лекция
    Как создавать объекты и управлять классами «на лету»: почему Class.newInstance() устарел, как корректно использовать getConstructor/ getDeclaredConstructor и Constructor.newInstance, вызывать методы через Method.invoke и читать/изменять поля через Field. Разберём типичные исключения ( ReflectiveOperationException и др.), ограничения модульной системы, полезные практики и мини‑утилиту для динамической инстанциации. Плюс — наглядная схема всего процесса.
    Открыта
  • Рефлексия и Dependency Injection

    JAVA 25 SELF
    62 уровень,4 лекция
    В этой лекции разбираем практику рефлексии в Java: как через Class, Field и Method читать приватные поля ( setAccessible( true)) и собрать простой сериализатор; как DI-контейнеры внедряют зависимости по аннотациям ( @Inject, @Autowired) через конструкторы и поля; как динамические прокси на базе Proxy и InvocationHandler перехватывают вызовы; где это применяется на практике ( Spring, JUnit, Jackson) и какие ограничения и ошибки встречаются.
    Открыта
  • Основы логирования: java.util.logging, Log4j, SLF4J

    JAVA 25 SELF
    63 уровень,0 лекция
    Зачем приложениям нужны логи, и почему просто System.out.println не спасает в продакшене. Разберём уровни ERROR/ WARN/ INFO/ DEBUG/ TRACE, встроенный стек java.util.logging и файл настроек logging.properties, познакомимся с Log4j 2, Logback и фасадом SLF4J. Сравним с консольным выводом, подключим зависимости и разберём типичные ошибки конфигурации и использования.
    Открыта
  • Форматирование и уровни логов: best practices

    JAVA 25 SELF
    63 уровень,1 лекция
    Разбираем, из чего состоит хорошее лог‑сообщение (время, уровень INFO/ ERROR, имя логгера, текст, стек), как правильно форматировать записи через шаблоны SLF4J/Log4j2 ( "{}" вместо конкатенации), как логировать исключения ( logger.error(..., ex)), когда использовать уровни ERROR/ WARN/ INFO/ DEBUG/ TRACE, а также лучшие практики: без чувствительных данных, понятные сообщения, корреляционные ID ( orderId, userId) и грамотная конфигурация log4j2.xml.
    Открыта
  • Логирование в многопоточных и web-приложениях

    JAVA 25 SELF
    63 уровень,2 лекция
    Как сделать логи надёжными в многопоточности и вебе: потокобезопасность готовых библиотек ( Logback, Log4j 2, java.util.logging), контекст MDC c передачей requestId, интеграция со Spring-фильтрами и обработчиками ошибок, отличие от System.out, нюансы пулов потоков и трассировка в микросервисах (traceId, OpenTelemetry). Разбираем практические примеры и типичные ошибки, используем SLF4J и Logger как static final поле.
    Открыта
  • Мониторинг JVM: JMX, VisualVM, Java Flight Recorder

    JAVA 25 SELF
    63 уровень,3 лекция
    Эта лекция — практическое руководство по мониторингу JVM: как читать стандартные метрики через JMX и JConsole, как визуально наблюдать память, потоки и профилировать методы в VisualVM (включая heap dump и thread dump), а также как записывать «чёрный ящик» с помощью Java Flight Recorder и разбирать его в JDK Mission Control. Покажем команды запуска ( -XX:StartFlightRecording), разберём типовые сценарии анализа GC/потоков и типичные ошибки.
    Открыта
  • Профилирование и оптимизация кода: инструменты, подходы

    JAVA 25 SELF
    63 уровень,4 лекция
    Разбираем, чем профилирование отличается от мониторинга, какие метрики важны (время работы методов, память, потоки, блокировки), и какими инструментами пользоваться: VisualVM, Java Flight Recorder, а также коммерческие профилировщики. На практике исследуем «медленный» калькулятор, учимся искать «горячие точки», анализировать heap dump и устранять узкие места с помощью замены алгоритмов, уменьшения аллокаций и кэширования. Завершаем визуальной схемой процесса оптимизации и разбором типичных ошибок.
    Открыта
  • Устройство памяти в JVM: стек, куча, PermGen/MetaSpace

    JAVA 25 SELF
    64 уровень,0 лекция
    Куда попадают локальные переменные, объекты и метаданные классов в процессе JVM: разбираем стек потоков, кучу и эволюцию PermGen → MetaSpace. Поговорим о том, как работает GC, какие бывают ошибки памяти ( StackOverflowError, OutOfMemoryError) и как влияют флаги запуска ( -Xss, -Xmx, -XX:MaxMetaspaceSize). Схемы, mermaid-диаграмма и рабочий пример прилагаются.
    Открыта
  • Сборщики мусора: G1, ZGC, Shenandoah, сравнение

    JAVA 25 SELF
    64 уровень,1 лекция
    В лекции разбираем, как работает сборщик мусора ( GC) в JVM, чем отличаются классические Serial/ Parallel/ CMS от современных G1, ZGC и Shenandoah, что такое молодое и старое поколения, почему происходят паузы Stop-the-World и как их минимизировать. На практике посмотрим, как включать разные GC флагами ( -XX:+UseG1GC, -XX:+UseZGC, -XX:+UseShenandoahGC), настраивать паузы ( -XX:MaxGCPauseMillis) и размеры кучи ( -Xms/ -Xmx), читать логи ( -Xlog:gc*) и избегать типичных ошибок (например, принудительного вызова System.gc()).
    Открыта
  • Локальные переменные, утечки памяти, слабые ссылки

    JAVA 25 SELF
    64 уровень,2 лекция
    Из лекции вы узнаете, где живут локальные переменные (стек потока) и чем он отличается от кучи, почему в Java всё же возможны утечки памяти, несмотря на GC, и как их избежать. Разберём реальные сценарии: «вечные» static-коллекции, неотписанные слушатели и кэши. Познакомимся с семейством ссылок: SoftReference, WeakReference, PhantomReference, а также контейнером WeakHashMap. Потренируемся исправлять утечки и обсудим, почему вызов System.gc() — это всего лишь подсказка JVM, а не приказ, и чем может закончиться OutOfMemoryError.
    Открыта
  • Инструменты анализа памяти: jmap, jvisualvm

    JAVA 25 SELF
    64 уровень,3 лекция
    Практическое руководство по диагностике проблем памяти в JVM: снимаем снимок кучи ( heap dump) утилитой jmap, читаем сводки через -heap и -histo, исследуем приложение в jvisualvm (вкладки Monitor, Heap Dump, Threads, Profiler), разбираем утечку на примере и знакомимся с Eclipse MAT и jconsole. В конце — частые ошибки и советы.
    Открыта
  • Разбор типичных ошибок при работе с памятью

    JAVA 25 SELF
    64 уровень,4 лекция
    Практический разбор, почему Java-приложение может «течь» по памяти и тормозить: забытые слушатели ( addActionListener/ removeActionListener), вечные статические коллекции, незакрытые ресурсы (совет: try-with-resources), анонимные/внутренние классы, удерживающие ссылки, и злоупотребление System.gc(). Научимся читать логи GC ( -Xlog:gc*, -XX:+PrintGCDetails), подбирать сборщик, строить кэши на WeakHashMap, мониторить ( jvisualvm, jconsole), анализировать heap dump, и правильно настраивать -Xmx/ -Xms. В конце — реальные примеры утечек и их исправления.
    Открыта
  • 1
  • ...
  • 27
  • 28
  • 29
  • 30
  • 31
  • ...
  • 57
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2025 JavaRush
MastercardVisa
"Программистами не рождаются" © 2025 JavaRush