Java Learning
前往频道在 Telegram
№ 5079899194 Обучающий канал по Java Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6 По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/Java_per_month
显示更多📈 Telegram 频道 Java Learning 的分析概览
频道 Java Learning (@java_per_month) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 16 837 名订阅者,在 技术与应用 类别中位列第 7 875,并在 俄罗斯 地区排名第 39 996 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 16 837 名订阅者。
根据 14 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -142,过去 24 小时变化为 -12,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 7.58%。内容发布后 24 小时内通常能获得 N/A% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 1 276 次浏览,首日通常累积 0 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 2。
- 主题关注点: 内容集中在 learning, строка, map, static, интерфейс 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“№ 5079899194
Обучающий канал по Java
Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6
По всем вопросам @mascarov_valentin
Реклама на бирже - https://telega.in/c/Java_per_month”
凭借高频更新(最新数据采集于 15 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
16 837
订阅者
-1224 小时
-327 天
-14230 天
帖子存档
16 839
Существует ли возможность перенаправить потоки стандартного ввода/вывода?
Класс System позволяет вам перенаправлять стандартный ввод, вывод и поток вывода ошибок, используя простой вызов статического метода:
•
setIn(InputStream) - для ввода;
• setOut(PrintStream) - для вывода;
• setErr(PrintStream) - для вывода ошибок.16 839
#вопросы_с_собеседований Spring
Что подразумевается под конфигурацией контейнера на основе аннотаций?
Вместо использования XML для описания связывания компонента разработчик перемещает конфигурацию в сам класс компонента, используя аннотации в соответствующем объявлении класса, метода или поля. Это работает как альтернатива настройкам XML. Пример на картинке.
16 839
Как повысить качество передачи голоса через интернет?
Об этом вас обязательно спросят на собеседовании, например, в сервис стриминга.
А еще зададут следующие вопросы:
• Из чего складывается качество звука?
• А измерение качества передачи речи?
• В чём особенность использования динамиков вместо наушников?
• Какие инструменты для измерения качества голоса и фоновых шумов существует и как ими пользоваться?
Например, для оценки качества передачи речи используется метрика MOS, основанная на опросах, и алгоритмические метрики, позволяющие программно оценить MOS. Существуют референсные и безреференсные метрики — в VK Звонках используют ViSQOL и NISQA.
Ответы на остальные вопросы ищите в статье от руководителя команды бэкенда VK Звонков по ссылке ниже.
Читать статью
16 839
Сборщик мусора (Garbage Collector) должен делать всего две вещи:
☕️ Находить мусор - неиспользуемые объекты. (Объект считается неиспользуемым, если ни одна из сущностей в коде, выполняемом в данный момент, не содержит ссылок на него, либо цепочка ссылок, которая могла бы связать объект с некоторой сущностью приложения, обрывается);
☕️ Освобождать память от мусора.
Существуют два подхода к обнаружению мусора:
☕️ Reference counting;
☕️ Tracing.
Reference counting (подсчёт ссылок). Суть этого подхода состоит в том, что каждый объект имеет счетчик. Счетчик хранит информацию о том, сколько ссылок указывает на объект. Когда ссылка уничтожается, счетчик уменьшается. Если значение счетчика равно нулю, - объект можно считать мусором. Главным минусом такого подхода является сложность обеспечения точности счетчика. Также при таком подходе сложно выявлять циклические зависимости (когда два объекта указывают друг на друга, но ни один живой объект на них не ссылается), что приводит к утечкам памяти.
Главная идея подхода Tracing (трассировка) состоит в утверждении, что живыми могут считаться только те объекты, до которых мы можем добраться из корневых точек (GC Root) и те объекты, которые доступны с живого объекта. Всё остальное - мусор.
Существует 4 типа корневых точки:
☕️ Локальные переменные и параметры методов;
☕️ Потоки;
☕️ Статические переменные;
☕️ Ссылки из JNI.
Самое простое java приложение будет иметь корневые точки:
☕️ Локальные переменные внутри main() метода и параметры main() метода;
☕️ Поток, который выполняет main();
☕️ Статические переменные класса, внутри которого находится main() метод.
Таким образом, если мы представим все объекты и ссылки между ними как дерево, то нам нужно будет пройти с корневых узлов (точек) по всем рёбрам. При этом узлы, до которых мы сможем добраться - не мусор, все остальные - мусор. При таком подходе циклические зависимости легко выявляются. HotSpot VM использует именно такой подход.
16 839
new vs valueOf
Старайтесь всегда использовать метод
valueOf вместо конструктора в стандартных классах-оболочках примитивных типов, кроме тех случаев, когда вам нужно конкретно выделить память под новое значение. Сейчас объясню, почему.
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.16 839
🔥 Хотите создавать высококлассные приложения на Java? Осваивайте Spring!
Начините изучать этот мощный фреймворк уже этой весной!
📢📢 25 апреля в 20:00 приходите на открытый урок «Свойства Spring-приложения».
На встрече разберем, каким образом можно определять настройки приложения на чистом Spring, а также затронем тему конвертации типов.
Спикером выступит преподаватель Александр Оруджев, Senior Software Engineer.
🟠Вебинар состоится в рамках запусках онлайн-курса «Разработчик на Spring Framework» в OTUS. Сейчас курс доступен в рассрочку.
➡️Для участия пройдите вступительный тест: https://otus.pw/X806/
Нативная интеграция. Информация о продукте www.otus.ru16 839
В чём заключается различие между методами submit() и execute() у пула потоков?
Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.
execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.
submit() – перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.16 839
Децентрализованный интернет: Как внедряют WEB 3.0 в России?
IPFS — технология интернета будущего, которая полностью меняет наше представление о хранении и доступе к данным в сети.
В видеообзоре специалист хостинга SpaceWeb расскажет:
▪️Чем IPFS отличается от существующего веб-протокола HTTP
▪️Какие проблемы пользователей решает IPFS
▪️Особенности и ограничения системы
▪️Как использовать IPFS на хостинге SpaceWeb
Подпишитесь на SpaceWeb и узнайте больше о том, как развивается один из лидеров облачных технологий в России.
Реклама: sweb.ru erid: 2VtzqwE4puV
16 839
#вопросы_с_собеседований
Можно ли так реализовать метод equals?
Нельзя, так как метод hashCode() не гарантирует уникальность значения для каждого объекта.
Но для сравнения экземпляров объекта
Object такой метод допустим, так как там хешкод вычисляется на основании использовании адреса объекта в памяти, поэтому он уникален для разных объектов.16 839
Что такое «зелёные потоки» и есть ли они в Java?
Зелёные (легковесные) потоки(green threads) - потоки эмулируемые виртуальной машиной или средой исполнения. Создание зелёного потока не подразумевает под собой создание реального потока ОС.
Виртуальная машина Java берёт на себя заботу о переключении между разными green threads, а сама машина работает как один поток ОС. Это даёт несколько преимуществ. Потоки ОС относительно дороги в большинстве POSIX-систем. Кроме того, переключение между native threads гораздо медленнее, чем между green threads.
Это всё означает, что в некоторых ситуациях green threads гораздо выгоднее, чем native threads. Система может поддерживать гораздо большее количество green threads, чем потоков OС. Например, гораздо практичнее запускать новый green thread для нового HTTP-соединения к веб-серверу, вместо создания нового native thread.
Однако есть и недостатки. Самый большой заключается в том, что вы не можете исполнять два потока одновременно. Поскольку существует только один native thread, только он и вызывается планировщиком ОС. Даже если у вас несколько процессоров и несколько green threads, только один процессор может вызывать green thread. И всё потому, что с точки зрения планировщика заданий ОС всё это выглядит одним потоком.
Начиная с версии 1.2 Java поддерживает native threads, и с тех пор они используются по умолчанию.16 839
💪 Пройди тест по Java и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса🎁 .
✍️ ПРОЙТИ ТЕСТ: https://otus.pw/LZji/
Реклама. Информация о рекламодателе на сайте otus.ru16 839
#Вопросы_с_собеседования
Можно ли использовать строки в конструкции switch?
Да, начиная с Java 7 в операторе switch можно использовать строки, ранние версии Java не поддерживают этого. При этом:
• участвующие строки чувствительны к регистру;
• используется метод equals() для сравнения полученного значения со значениями case, поэтому во избежание NullPointerException стоит предусмотреть проверку на null.
• согласно документации, Java 7 для строк в switch, компилятор Java формирует более эффективный байткод для строк в конструкции switch, чем для сцепленных условий if-else.
16 839
Новый тренд 2038 года - это игра TONight специально для разработчиков, где ты можешь писать код, развлекаться и зарабатывать криптовалюту.
Помоги жителям города решить все их задачки за вознаграждение в TON!
Переходи по ссылке и играй прямо в браузере:
👉 https://clck.ru/3485U5
16 839
Перечислите принципы, которым вы следуете в многопоточном программировании?
При написании многопоточных программ следует придерживаться определённых правил, которые помогают обеспечить достойную производительность приложения в сочетании с удобной отладкой и простотой дальнейшей поддержки кода.
• Всегда давайте значимые имена своим потокам. Процесс отладки, нахождения ошибок или отслеживание исключения в многопоточном коде – довольно сложная задача.
OrderProcessor, QuoteProcessor или TradeProcessor намного информативнее, чем Thread1, Thread2 и Thread3. Имя должно отражать задачу, выполняемую данным потоком.
• Избегайте блокировок или старайтесь уменьшить масштабы синхронизации. Блокировка затратна, а переключение контекста ещё более ресурсоёмко. Пытайтесь избегать синхронизации и блокировки насколько это возможно, и организуйте критическую секцию в минимально необходимом объёме. Поэтому синхронизированный блок всегда предпочительней синхронизированного метода, дополнительно наделяя возможностью абсолютного контроля над масштабом блокировки.
• Обрабатывайте прерывание потока с особой тщательностью. Нет ничего хуже оставшегося заблокированным ресурса или системы в неконстистентном, по причине неподтверждённой транзакции, состоянии.
• Помните об обработке исключений. Выброшенные InterruptedException должны быть адекватно обработаны, а не просто подавлены. Так же не стоит пренебрегать Thread.UncaughtExceptionHandler. При использовании пула потоков необходимо помнить, что он зачастую просто «проглатывает» исключения. Так, если вы отправили на выполнение Runnable нужно обязательно поместить код выполнения задачи внутрь блока try-catch. Если в очередь пула помещается Callable, необходимо удостоверится, что результат выполнения всегда изымается помощью блокирующего get(), чтобы в случае возникновения существовала возможнотсь заново выбросить произошедшее исключение.
• Между синхронизаторами и wait() и notify() следует выбирать синхронизаторы. Во-первых, синхронизаторы, типа CountDownLatch, Semaphore, CyclicBarrier или Exchanger упрощают написание кода. Очень сложно реализовывать комплексный управляющий поток, используя wait() и notify(). Во-вторых, эти классы написаны и поддерживаются настоящими мастерами своего дела и есть шанс, что в последующих версиях JDK они будут оптимизированы изнутри или заменены более производительной внешней реализацией.
• Почти всегда использование Concurrent сollection выгоднее использования Synchronized сollection, т.к. первые более современны (используют все доступные на момент их написания новшества языка) и масштабируемы, чем их синхронизированые аналоги.16 839
⚡️MidJourney-5 теперь в Telegram без лимитов!
Эта нейросеть в 173 раза мощнее первого поколения. Она умеет изображать всё что угодно — даже нарисовать вас в духе видеоигры, аниме, мультфильма или сериала.
Нейросеть уже доступна бесплатно без всяких лимитов вместе с ChatGPT в закрепе официального канала: @midjourney5
16 839
Чем отличается процесс от потока?
Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и память). Каждый процесс выполняется в отдельном адресном пространстве: один процесс не может получить доступ к переменным и структурам данных другого. Если процесс хочет получить доступ к чужим ресурсам, необходимо использовать межпроцессное взаимодействие. Это могут быть конвейеры, файлы, каналы связи между компьютерами и многое другое.
Для каждого процесса ОС создает так называемое «виртуальное адресное пространство», к которому процесс имеет прямой доступ. Это пространство принадлежит процессу, содержит только его данные и находится в полном его распоряжении. Операционная система же отвечает за то, как виртуальное пространство процесса проецируется на физическую память.
Поток(thread) — определенный способ выполнения процесса, определяющий последовательность исполнения кода в процессе. Потоки всегда создаются в контексте какого-либо процесса, и вся их жизнь проходит только в его границах. Потоки могут исполнять один и тот же код и манипулировать одними и теми же данными, а также совместно использовать описатели объектов ядра, поскольку таблица описателей создается не в отдельных потоках, а в процессах. Так как потоки расходуют существенно меньше ресурсов, чем процессы, в процессе выполнения работы выгоднее создавать дополнительные потоки и избегать создания новых процессов.16 839
Play Framework
Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.
16 839
Play Framework
Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
