Telegram Web Link
Что такое NIO в Java?

NIO (New Input/Output) — это API в Java для неблокирующего ввода-вывода, представленное в JDK 1.4. Оно предоставляет более эффективные и масштабируемые способы работы с файлами, сокетами и каналами.

▪️ Основные компоненты

— Каналы (Channels): для чтения/записи данных.
— Буферы (Buffers): для хранения данных вместо потоков.
— Селекторы (Selectors): для обработки множества каналов одним потоком.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4👏1🎉1
Что такое JPQL?

JPQL (Java Persistence Query Language) — это язык запросов в JPA, который позволяет работать с сущностями, а не с таблицами базы данных. Он похож на SQL, но оперирует объектами и их полями, а не колонками и строками.

🔹 Пример запроса JPQL:
@Query("SELECT u FROM User u WHERE u.email = :email")
User findByEmail(@Param("email") String email);


В этом запросе User — это сущность, а u.emailполе класса, а не колонка таблицы.

🔹 Основные особенности JPQL:

Работает с классами сущностей (@Entity), а не с таблицами.
Поддерживает вложенные запросы, JOIN, ORDER BY, GROUP BY, HAVING.
Позволяет использовать именованные параметры (:paramName).
Не зависит от конкретной реляционной базы данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥3👏1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
2👍1🔥1
Почему Map — это не коллекция?

Неверно: потому что так решили разработчики Java.

✔️ Правильный ответ: Map не наследует Collection, так как он оперирует парами "ключ-значение", а Collection — это набор отдельных элементов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥53🤔2
Как между собой связаны Iterable, Iterator и цикл for-each?

— Iterable<T> — это интерфейс, который должен реализовать класс, если он хочет поддерживать итерацию с помощью for-each. Он содержит один метод Iterator<T> iterator(). Этот метод возвращает Iterator, который и управляет обходом элементов.

— Iterator<T> — это интерфейс, который используется для последовательного перебора элементов. Он определяет методы:

boolean hasNext() — проверяет, есть ли следующий элемент
T next() — возвращает следующий элемент
void remove() — удаляет текущий элемент (необязательный)

— Цикл for-each (enhanced for loop) — это синтаксический сахар, который автоматически использует Iterator внутри себя.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3🥰3
Что такое микросервисы?

Микросервисы — это архитектурный стиль, при котором приложение разбивается на небольшие, независимые сервисы. Каждый сервис отвечает за определённую бизнес-логику, имеет собственную базу данных (или логически обособленное хранилище) и взаимодействует с другими сервисами через API (обычно REST или gRPC).

🔹 Ключевые принципы

Можно обновлять и масштабировать отдельные сервисы без затрагивания всей системы.
Каждый сервис выполняет свою узкую задачу.
У сервиса свои изолированные данные, код и зависимости.
Сервисы общаются через HTTP, AMQP, Kafka и другие механизмы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3🎉21
💬 Обратная связь

Какие типы вопросов вам нравятся больше?

🔥 - Классические вопросы, которые часто спрашивают на собеседованиях
👍🏼 - Интересные и нетривиальные вопросы
😁 - Хотелось бы побольше практики
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43😁24👍21
Что такое ООП?

ООП (объектно-ориентированное программирование) — это парадигма программирования, которая основана на представлении программы как совокупности объектов, которые взаимодействуют между собой. Объекты имеют состояние (поля) и поведение (методы).

🔹 Основные принципы ООП:

1️⃣ Абстракциявыделение главных характеристик объекта, скрывая детали реализации
2️⃣ Инкапсуляциямеханизм ограничения доступа к внутреннему состоянию объекта и предоставления строго определённого интерфейса для работы с ним
3️⃣ Наследованиемеханизм, который позволяет одному классу получить свойства и поведение другого
4️⃣ Полиморфизмспособность объектов с одинаковым интерфейсом иметь разную реализацию
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥4🎉2
Что такое ссылка на метод?

Ссылка на метод (Method Reference) — это упрощённая форма лямбда-выражения, используемая для передачи существующего метода в качестве аргумента. Она позволяет ссылаться на статические и нестатические методы классов, а также на конструкторы.

🔵 Форматы ссылок

1️⃣ ClassName::staticMethod — ссылка на статический метод.
2️⃣ object::instanceMethod — ссылка на метод конкретного объекта.
3️⃣ ClassName::new — ссылка на конструктор.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥52
Какие конечные методы работы со стримами вы знаете?

Конечные (терминальные) методы в Stream API выполняют вычисления и завершают работу стрима. Среди них:

▪️ collect() – собирает элементы в коллекцию или другую структуру данных.
▪️ count() – возвращает количество элементов в стриме.
▪️ forEach() – выполняет действие для каждого элемента.
▪️ reduce() – сводит элементы к единственному значению.
▪️ toArray() – преобразует стрим в массив.
▪️ min() / max() – находят минимальный или максимальный элемент.
▪️ anyMatch() / allMatch() / noneMatch() – проверяют соответствие элементов предикату.
▪️ findFirst() / findAny() – находят первый или любой элемент.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥21🎉1
Что такое транзакция?

Транзакция — это логически связанная последовательность операций, выполняемая как единое целое. Она либо завершается полностью (commit), либо полностью откатывается (rollback), обеспечивая целостность данных.

В контексте баз данных и Java, транзакция гарантирует четыре свойства (ACID):

🔹 Atomicity (Атомарность) — все операции выполняются как единое целое.
🔹 Consistency (Согласованность) — данные остаются в целостном состоянии.
🔹 Isolation (Изолированность) — параллельные транзакции не мешают друг другу.
🔹 Durability (Долговечность) — изменения сохраняются даже после сбоев.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥51🤩1
Какие есть режимы доступа к файлу?

Режимы доступа к файлу определяются флагами при работе с FileInputStream, FileOutputStream и RandomAccessFile. Основные режимы:

🔹 Чтение (r) — файл открывается только для чтения.
🔹 Запись (w) — файл создаётся или перезаписывается.
🔹 Дополнение (a) — данные добавляются в конец файла.
🔹 Чтение + запись (rw) — позволяет и читать, и записывать.
🔹 Чтение + запись + синхронизация (rws/rwd) — дополнительно обеспечивает синхронизацию с диском.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3🎉1
Swipe right or swipe left

Что делать, если твои мэтчи в жизни не такие точные, как твой код?

Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match.

📌 Мы возьмем реальные данные со speed dating.

📌 Обучим модель, которая скажет: match или swipe left.

📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).

💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.

👉 Записаться
Что такое шаблон проектирования?

Шаблон проектирования (Design Pattern) — это типовое решение распространенной проблемы при проектировании ПО. Это не готовый код, а общее руководство по организации структуры кода, которое помогает сделать его более гибким, понятным и поддерживаемым.

🔹 Шаблоны проектирования делятся на три группы:

Порождающие – управляют созданием объектов (например, Singleton, Factory, Builder).
Структурные – определяют отношения между классами и объектами (например, Adapter, Decorator, Proxy).
Поведенческие – описывают взаимодействие между объектами (например, Observer, Strategy, Command).

Если стоит написать посты по каждому паттерну👍🏼
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58🔥3🎉2
Какие методы HTTP используются в RESTful API?

▪️ GET — для получения данных.
▪️ POST — для создания ресурса.
▪️ PUT — для обновления ресурса.
▪️ PATCH — для частичного обновления ресурса.
▪️ DELETE — для удаления ресурса.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱16👍9🔥1
Что такое Spring IoC контейнер?

Spring IoC (Inversion of Control) контейнер — это центральный механизм в Spring, который управляет созданием, конфигурацией и жизненным циклом бинов.

🔹 Какие контейнеры бывают

1️⃣ BeanFactory – легковесный контейнер, подходит для простых сценариев.
2️⃣ ApplicationContext – расширенный контейнер с доп. возможностями (событийная модель, интеграция с AOP и т. д.).

Зачем нужен

Ослабляет связность кода (dependency injection).
Упрощает управление зависимостями.
Позволяет легко заменять реализации компонентов.
Облегчает тестирование за счет моков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4🎉1
👀 Задача: Разработка сервиса сокращения URL (middle)

В компании возникла необходимость сократить длину ссылок в SMS-сообщениях. Ваша задача — спроектировать и реализовать сервис для сокращения URL.

▪️ Условия:

1. Сервис должен принимать полный URL и возвращать его сокращенную версию.
2. При обращении по сокращенному URL должен происходить редирект на исходный полный URL.
3. Сервис должен быть устойчив к коллизиям и обеспечивать уникальность сокращенных ссылок.
4. Желательно предусмотреть возможность задания времени жизни для сокращенных ссылок.

💡 Ключевые моменты:

— Выбор подходящего хранилища для соответствия сокращенных и полных URL (например, база данных или key-value хранилище).
— Разработка алгоритма генерации уникальных сокращенных ссылок, устойчивого к коллизиям.
— Обеспечение быстрого доступа к данным и минимизация задержек при редиректе.

✔️ Решение:

Один из подходов — использовать хеширование для генерации уникальных идентификаторов и хранить соответствия в базе данных с индексами для быстрого поиска. Для повышения производительности можно использовать in-memory хранилище.

Реализация на картинке 👆🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2🎉1
Что такое модульное тестирование?

Модульное тестирование (Unit Testing) — это тестирование отдельных компонентов системы (обычно методов или классов) в изоляции от остальных частей кода. Тесты должны быть атомарными, независимыми и воспроизводимыми. Хорошее модульное тестирование покрывает не только «счастливые» сценарии, но и граничные случаи и ошибки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🎉1
Как устроен HashMap под капотом?

HashMap основан на массиве бакетов (Node<K, V>[] table), где каждый бакет содержит связанный список или дерево.

🔹 Ключевые моменты

— Для хеширование ключа вызывается hashCode(), после чего вычисляется индекс массива через (n - 1) & hash, где n – размер массива.
— Если несколько ключей попадают в один бакет, создаётся связанный список. Если число элементов в бакете превысит 8, список заменяется на красно-чёрное дерево для ускорения поиска.
— Если загрузка (size / capacity) превышает 0.75, размер массива увеличивается в 2 раза, а элементы перераспределяются.
— Поиск идёт по бакету: если элементов несколько, перебирается список (или дерево), сравниваются hashCode() и equals().
— HashMap обеспечивает O(1) для операций get() / put(), но при частых коллизиях или неправильных hashCode() может деградировать до O(log n).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥7🎉2
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
2025/07/11 21:30:35
Back to Top
HTML Embed Code: