Библиотека Java разработчика
前往频道在 Telegram
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
显示更多📈 Telegram 频道 Библиотека Java разработчика 的分析概览
频道 Библиотека Java разработчика (@bookjava) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 10 265 名订阅者,在 技术与应用 类别中位列第 12 016,并在 俄罗斯 地区排名第 63 847 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 10 265 名订阅者。
根据 13 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 13,过去 24 小时变化为 3,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 8.59%。内容发布后 24 小时内通常能获得 4.32% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 882 次浏览,首日通常累积 443 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 7。
- 主题关注点: 内容集中在 string, интерфейс, строка, boot, api 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.
По всем вопросам @evgenycarter
РКН clck.ru/3KoGeP”
凭借高频更新(最新数据采集于 14 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
10 265
订阅者
+324 小时
-157 天
+1330 天
帖子存档
Какие ограничения на целостность данных существуют в SQL?
PRIMARY KEY - набор полей (1 или более), значения которых образуют уникальную комбинацию и используются для однозначной идентификации записи в таблице. Для таблицы может быть создано только одно такое ограничение. Данное ограничение используется для обеспечения целостности сущности, которая описана таблицей.
CHECK используется для ограничения множества значений, которые могут быть помещены в данный столбец. Это ограничение используется для обеспечения целостности предметной области, которую описывают таблицы в базе.
UNIQUE обеспечивает отсутствие дубликатов в столбце или наборе столбцов.
FOREIGN KEY защищает от действий, которые могут нарушить связи между таблицами. FOREIGN KEY в одной таблице указывает на PRIMARY KEY в другой. Поэтому данное ограничение нацелено на то, чтобы не было записей FOREIGN KEY, которым не отвечают записи PRIMARY KEY.
💡Какие структуры данных нужно знать джуну?
Макс Добрынин подготовил полное руководство: на что стоит обратить внимание, какие структуры важны, а какие нет. Это и многое другое в новом выпуске на youtube-канале @jetbulb
Видео уже доступно по ссылочке https://youtu.be/IxfAeGwDeww
А еще у ребят скоро стартует набор на бесплатное mock-интервью, так что не забудьте подписаться😉
Предположим, есть метод, который может выбросить IOException и FileNotFoundException. в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок
catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).
Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException:
void method() {
try {
//...
} catch (FileNotFoundException ex) {
//...
} catch (IOException ex) {
//...
}
}Хотите научиться делать один из самых популярных элементов анимации? 🤔
⚡️Приглашаем 11 мая в 20:00 мск на открытый урок «Анимация модального окна сайта: основы и полезные фишки» в OTUS.
Вместе с Марией Коршуновой, экспертом с опытом более 10 лет в сфере веб-разработки, мы потренируемся в анимации модального окна его открытия и закрытия, чтобы сделать элемент отличным от большинства сайтов.
Урок дает возможность предварительно попробовать новый онлайн-курс «Веб-анимации».
👉🏻Регистрация на урок: https://otus.pw/u42f/
Чем отличается перегрузка от переопределения? (2/2) Часть 1
Переопределение (override) дает полиморфизм подтипов. Это реализация/подмена метода нефинального родительского класса или интерфейса. С помощью этого механизма достигается поведение, когда экземпляр хранится под типом родителя, но реализация методов используется специфичная для этого конкретного подтипа. Пример:
List<String> list = new LinkedList<>();
list.add(“foo“);
Здесь метод add вызывается общий для всех списков, но добавлен будет именно элемент связного списка.
Выбор конкретного метода происходит в последний момент, в процессе работы программы, в зависимости от типа объекта. Это называется позднее или динамическое связывание методов (late binding, dynamic dispatch).
Переопределение имеет непосредственное отношение к принципу подстановки Лисков (LSP): в хорошем объектно-ориентированном коде для вызывающего кода переопределенный метод не должен быть отличим от оригинального.
Переопределенный метод принято снабжать аннотацией @Override. Ее отсутствие допускается, но компиляция не перегружающего метода с такой аннотацией приведет к ошибке.
При переопределении можно сузить набор выбрасываемых исключений или тип результата, и заменить модификатор доступа на менее строгий.
Статические методы нельзя переопределить, можно только перегрузить.
О внутренностях процесса связывания можно почитать в этой статье.
#КлассыRepost from Академия Кода
Как проверить содержится ли элемент в массиве на java?
Вы можете использовать условие и цикл для проверки существования элемента в массиве.
class Main {
public static void main(String[] args) throws Exception {
int[] firstArray = new int[]{52, 21, 94, 29, 91};
int[] secondArray = new int[]{82, 74, 51, 39, 23};
int element = 21;
for (int i = 0; i < firstArray.length; i++) {
if (firstArray[i] == element){
System.out.println(element + " in first array");
}
}
for (int i = 0; i < secondArray.length; i++) {
if (secondArray[i] == element){
System.out.println(element + " in second array");
}
}
// Вывод : 21 in first array
}
}
#java
Подписывайтесь на канал 👉@coddy_academyЧем отличается перегрузка от переопределения? (1/2)
Полиморфизм – соль ООП. Перегрузка (overload) и переопределение (override) – два инструмента достижения полиморфного поведения в Java.
Перегрузкой реализуется ad-hoc-полиморфизм. Это значит «один и тот же» метод может работать с разными параметрами. С технической точки зрения это просто два разных метода, сигнатуры которых имеют одинаковое название, но разный набор параметров. Важно помнить, что для перегрузки не достаточно различий только модификаторов, возвращаемых типов и списков исключений.
Ad-hoc – не совсем настоящий полиморфизм, так как при нём используется раннее, или статическое связывание (early binding, static dispatch). Это значит, что для выбора конкретного варианта метода используется информация о типе переменной, а не объекта в ней лежащего, и происходит это еще при компиляции.
Если в классе объявлены два перегруженных метода, а аргумент в вызове подходит под оба, случится ошибка компиляции. В примере ниже компилятор не может выбрать между вариантами метода
println с параметром char[] и со String, так как null может быть и тем и другим.
#КлассыНадоела скучная, тяжёлая работа? Хочешь научиться чему то новому и офигенному, как последняя модель Porsche? И плюсом чтоб на этом можно было нехило так зарабатывать? Тогда влетай в IT Вместе с нами.
Открой для себя новый мир информационных технологий. Изучай! Размышляй! Создавай! Учиcь програмированию с нуля, а наши преподаватели, которые имеют коллосальный опыт, готовы поделиться знаниями с тобой. И уже через несколько месяцев ты сможешь создать свой код.
Получи профессию будущего!
Ждем тебя!
P.S. Картинка* - наш админ так шутит
https://t.me/maxima_life
Подборка интересных каналов 🔥
DeepFake
На канале публикуем deepfake видео и связанные с ними технологии.
https://t.me/deepfakenow
Мир технологий (Technology World)
Добро пожаловать в мир технологий
https://t.me/mir_teh
GitHub Сообщество
https://t.me/Githublib
Реальный Python
Все о пайтон, новости, подборки на русском и английском.
https://t.me/python_real
BigData
Data Science : Big Data : Machine Learning : Deep Learning
https://t.me/bigdata_1
Базы данных (Data Base)
https://t.me/database_info
Книги для программистов Rus
https://t.me/book_for_dev
DevOps
Пишем о Docker, Kubernetes и др.
https://t.me/i_DevOps
Типичный Сисадмин
Админский юмор, фото железа, было/стало, все здесь!
https://t.me/tipsysdmin
Python академия
Учи Python быстро и легко.
https://t.me/pythonofff
Coddy
Академия кода.
https://t.me/coddy_academy
Bitkoinoff - новости криптовалют
Все самое важное о криптовалютах и блокчейне
https://t.me/bitkoinoff
Сообщество Дизайнеров
https://t.me/ux_web
GameDev: разработка игр
https://t.me/game_devv
Газпромбанк — это не только финансы, но еще и крутое IT-комьюнити.
Недавно ребята собрались на космическом митапе Gagarin Party в Музее космонавтики. Спикеры поделились своим опытом: например, как развивать сообщества бэкенд-разработчиков и организовывать дежурства on-call.
А еще с лекцией выступил астроном Владимир Сурдин и рассказал о достижениях в космосе 🚀
Ты тоже можешь стать частью команды Газпромбанка и участвовать в классных мероприятиях. Вакансии ждут тебя тут > https://vk.cc/ccWssJ
Repost from Академия Кода
Как удалить директорию в java?
Вы можете использовать File.delete() для удаления директории.
import java.io.File;
class Main {
public static void main(String[] args) throws Exception {
File file = new File("delete_folder");
if (file.delete()){
System.out.println("Директория успешно удалена");
}
}
}
#java
Подписывайтесь на канал 👉@coddy_academyКак стать уверенным разработчиком на главном языке «энтерпрайза» Java?
Например, записаться на курс по Java-разработке от Хекслета.
Курс поможет освоить язык, алгоритмы и структуры данных, работу с микросервисами, фреймворком Spring Boot, базами данных и инфраструктурой.
На Хекслете курс спроектирован так, что его невозможно просто «отсидеть» или «прослушать». Именно поэтому студенты могут получить оффер ещё во время обучения, а некоторые работодатели указывают их курсы как преимущество при найме.
✏️Узнайте подробнее о программе: https://bit.ly/3K0rijZ
Лучшие практики Unit-тестирования на Java
Unit-тестирование - важный шаг в разработке и внедрении программного обеспечения. Оно не только повышает эффективность и результативность кода, но также делает его более надежным.
В этом руководстве мы обсудим несколько лучших практик Unit-тестирования на Java, а именно:
- именование пакетов
- размещение кода с тестами
- именование методов
и многое другое
Читать статью
Какие существуют стандартные загрузчики классов?
В JVM встроено как минимум три стандартных загрузчика:
🔘 Bootstrap – встроенная в JVM нативная реализация, родитель для всех остальных загрузчиков. Загружает часть стандартных классов
java.*;
🔘 Platform – отвечает за загрузку стандартных классов Java-рантайма. До Java 9 назывался Extension и занимался загрузкой расширений. Гарантируется, что ему будут видны (но не факт что загружены непосредственно им) все стандартные классы Java SE и JDK;
🔘 System (Application) – загружает классы из classpath конкретного приложения;
Перед тем как загрузить класс, ClassLoader проверит, не может ли это сделать его родитель. Если класс уже загружен, то загрузка не потребуется.
Иллюстрация смысла этой иерархии – загрузчики web-сервера Apache Tomcat. Прикладной код каждого web-приложения работает на своем отдельном загрузчике изолированно от других приложений. Даже один и тот же класс-singleton у каждого приложения будет собственный. Системные классы и общие библиотеки при том грузятся их родительскими загрузчиками, только один раз для сервера.
#Классы💪 Усильте свои фундаментальные навыки программирования с помощью открытого урока «Алгоритм Дейкстры для поиска кратчайшего пути во взвешенном графе.»
✅ На занятии с Евгением Волосатовым, экспертом с 20-летним опытом программирования поговорим об алгоритмы Дейкстры.
📌 Проведем обзор второй половины онлайн-курса «Алгоритмы и структуры данных» от OTUS. Demo-занятие пройдет в рамках этого курса и позволит познакомиться с преподавателем.
❗️ Этот курс подходит для любого языка программирования.
👉 Для регистрации пройдите вступительное тест https://otus.pw/gMWH/
Зачем нужен загрузчик классов?
В Java используется динамическая загрузка классов. Ее выполняют загрузчики – наследники абстрактного класса ClassLoader. Кроме того, они же загружают и файлы-ресурсы.
Загрузка класса (точнее любого ссылочного типа) и всех его предков происходит автоматически перед его инициализацией. При этом используется тот лоадер, который загрузил текущий код. Таким образом, загрузка всех, даже встроенных классов – ленивая.
Вручную класс можно загрузить из конкретного загрузчика, передав аргументом его метода
loadClass бинарное имя класса.
В URLClassLoader и стандартных загрузчиках JVM источником класса служит .class-файл. Другие загрузчики в своей реализации используют и другие источники: это может быть сетевой ресурс, или класс может генерироваться в рантайме. К примеру загрузчик из javassist специализируется на создании классов на лету.
В результате загрузки создается экземпляр класса Class. В отличие от обычных объектов, такие экземпляры хранятся не в куче, а в permgen/metaspace. Class может быть выгружен, когда загрузивший его ClassLoader стал мусором.
#Классы🍀Время погрузиться в Spring!
📚 OTUS открыл весенний набор в группу онлайн-курса «Spring Framework Developer».
За 5 месяцев вы освоите популярный Java-фреймворк и его технологии, научитесь создавать сложные web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке.
💪🏻Во время обучения вы создадите свой выпускной проект, например онлайн-библиотеку или блог с админкой.
🚀Готовы к карьерному рывку и интересным проектам?
📌Тогда проходите вступительный тест и и занимайте место, пока действует спец.цена: https://otus.pw/UISb/
Что такое enum?
enum – тип-перечисление. Бывает много разных формулировок вопроса, все они сводятся к разговору о перечислениях вообще. Технически это финальный класс со статическими финальными полями-экземплярами.
enum Foo всегда неявно наследуется от Enum<Foo> – то есть перечислением нельзя расширить другой класс, но всё еще можно реализовать интерфейсы. Из-за generic-параметра разные перечисления не имеют общего предка кроме Object.
Является Comparable (сравнивается позиция по порядку объявления значений) и Serializable (сериализуется только имя константы).
Имеет только заранее заданный набор значений. Значения неявно public static final и это нельзя переопределить. Для инициализации констант действуют все правила статической инициализации.
Копии элементов перечисления не создаются даже при десериализации. Вот почему Effective Java предлагает использовать для сериализуемого синглтона enum.
Экземпляры хранят свойства name и ordinal – имя и порядковый номер константы. Статический метод values вернет список всех констант, valueOf – константу по имени. Спецификация.
Финализация и клонирование перечислений запрещены.
#КлассыRepost from Академия Кода
Как вернуть два значения из метода в java?
Вы можете возвращать массив значений из метода.
class Main {
public static int[] get_summ_and_diff(int x, int y){
int summ = x + y;
int diff = x - y;
return new int[]{summ, diff};
}
public static void main(String[] args) throws Exception {
int[] diff_and_summ = get_summ_and_diff(10, 5);
System.out.println(diff_and_summ[0]);
System.out.println(diff_and_summ[1]);
// Вывод :
// 15
// 5
}
}
#java
Подписывайтесь на канал 👉@coddy_academyЧто можно делать с переменной хранящей null?
Во-первых, если переменная не финальная, использовать как L-value этого типа – присваивать новое значение.
Во-вторых, то же, что со значением
null, но с учетом типа:
🔘 Сравнивать с null или переменной этого же класса;
🔘 Приводить к типу-родителю (upcast) или типу-наследнику (downcast), учитывая границы generic-параметров при наличии;
🔘 Обращаться к членам экземпляра и получать NullPointerException;
🔘 Применять instanceof и получать false
🔘 Использовать как параметр для методов и других совместимых с типом операторов
В-третьих, можно обращаться к статическим членам класса. В вопросе подразумевается именно эта интересная часть. Это безопасно, NullPointerException не возникнет, но для упрощения отладки и из-за отсутствия переопределения статических членов рекомендуется так не делать. Вместо этого обращайтесь к статике явно через имя класса, либо неявно, добавив для класса import static.
#Классы
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
