Java Developer
15.7K subscribers
1.93K photos
146 videos
8 files
2.19K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
👩‍💻 Безопасность приложений: инструменты и практики для Java-разработчиков

В статье обсуждаются ключевые практики безопасной разработки для Java и реальные инструменты, которые помогают внедрить их в рабочий процесс.

Авторы показывают на примерах, как стандартизация кода, статический анализ и защищённые сборочные конвейеры делают приложения надёжнее и устойчивее к уязвимостям.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Вопрос с собеседования

Где хранятся объекты?

Ответ: Все объекты, создаваемые через new, размещаются в куче (heap) — области памяти, управляемой сборщиком мусора. Ссылки на эти объекты могут храниться в стеке, если они являются локальными переменными внутри метода. Таким образом, объект — в куче, ссылка на него — в стеке.

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥3
💻 Бесплатный инструмент для визуализации плана выполнения SQL-запросов

Просто вставляете EXPLAIN или EXPLAIN ANALYZE — и получаете понятное дерево выполнения запроса. Сразу видно, где запрос тормозит, какие индексы не используются, где начинается Full Table Scan и какие джойны работают неэффективно.

Удобный способ быстро понять, что именно не так с запросом, без ковыряния в сухом выводе EXPLAIN — забираем тут.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Вопрос с собеседования

Как работает volatile? Гарантирует ли он атомарность операций?

Ответ: Ключевое слово volatile в Java используется, чтобы обеспечить видимость изменений переменной между потоками. Оно гарантирует, что при изменении значения одним потоком другие потоки увидят актуальное значение сразу, а не из кэша. Также volatile предотвращает переупорядочивание инструкций, что важно для корректной синхронизации.

Однако volatile не обеспечивает атомарность операций. Это значит, что составные действия вроде инкремента (++) или проверки и установки значения всё равно требуют дополнительных механизмов синхронизации — например, synchronized или Atomic* классов.


tags:
#собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
🔖 Инструмент для генерации реалистичных тестовых данных

Это удобный веб-сервис, который генерирует моки за секунды — он выдаёт CSV, JSON, SQL, Excel и ещё кучу форматов, без кода и сложных настроек.

Идеально для заполнения тестовых баз и заглушек для API — забираем тут.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Вопрос с собеседования

Почему в Java интерфейс может иметь методы с реализацией (default)? Это не противоречит идее интерфейса?

Ответ: Нет, не противоречит. Они нужны, чтобы можно было добавлять новые методы в интерфейс, не ломая старые классы, которые уже его реализуют.

Без default при добавлении нового метода пришлось бы менять весь существующий код. С default-методом интерфейс даёт базовую реализацию метода, которую необязательно переопределять в реализующих классах.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👩‍💻 Программирование без условных операторов

В статье разбираются способы замены громоздких конструкций с if и switch в Java на более выразительные решения.

Показываются приёмы с использованием полиморфизма, функциональных интерфейсов и фабрик для создания гибкой архитектуры.

Читать статью

tags: #статья

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73
Вопрос с собеседования

В чём разница между @Bean и @Component в Spring?

Ответ: @Component применяется к классам и говорит Spring автоматически обнаружить и создать бин на основе этого класса при сканировании компонентов. Такой подход используют для собственных классов приложения: сервисов, репозиториев, контроллеров и других управляемых компонентов.

@Bean используется внутри конфигурационных классов и позволяет явно описать, как именно должен создаваться бин. Этот способ подходит, когда требуется кастомная логика инициализации или когда бин нельзя аннотировать напрямую, например для классов из сторонних библиотек.

Итог:
@Component — для автоматического создания бинов из классов приложения, @Bean — для ручной и более гибкой конфигурации бинов.

tags: #собеседование

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
👩‍💻 Полезные фичи в Java для новичков

В статье автор рассказывает о четырёх фичах в Java, которые сам активно использует в своих проектах и которые, на его взгляд, могут упростить жизнь.

Рассматриваются примеры использования запечатанных классов, записей, лямбда-выражений и переменного числа аргументов в методах с пояснением о том, как эти функции могут быть применены в реальных проектах.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2👀1
Вопрос с собеседования

Чем unit-тесты отличаются от интеграционных?

Ответ: Unit-тесты проверяют отдельную небольшую часть кода в изоляции — одну функцию или метод, без реальных зависимостей вроде базы данных, сети или файловой системы. Все внешние зависимости подменяются моками или заглушками, поэтому такие тесты быстрые и точно указывают место ошибки.

Интеграционные тесты проверяют совместную работу нескольких компонентов системы. Они запускают код с реальными или почти реальными зависимостями и отвечают на вопрос, корректно ли части приложения взаимодействуют между собой. Такие тесты медленнее, сложнее в настройке, но позволяют выявить проблемы на границах между модулями.


tags: #собеседование

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121
👩‍💻 Основы транзакций в Spring и JDBC

В статье разбирается, как работают транзакции в Java-приложениях через JDBC и как Spring позволяет упростить управление ими с помощью @Transactional.

Автор показывает, как вручную контролировать транзакции, объясняет ключевые принципы ACID и демонстрирует, как Spring автоматически управляет их жизненным циклом.

Читать статью

tags: #статья

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
SQL.pdf
1.9 MB
💻 Руководство по SQL с примерами

Подборка на 150 страниц для тех, кто хочет разобраться в SQL. Здесь есть всё: от базовых запросов до функций и сложных приёмов.

Полезный материал, чтобы быстро освежить или подтянуть знания.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2
Вопрос с собеседования

Что такое Grafana и как организуется сбор метрик?

Ответ: Grafana — это система визуализации и анализа метрик. Она сама не собирает данные, а подключается к источникам (Prometheus, InfluxDB, Elasticsearch и другим) и строит дашборды на основе уже собранных показателей. Через Grafana настраивают графики, алерты и панели мониторинга.

Сбор метрик обычно происходит отдельно. Приложение публикует метрики через специальный эндпоинт, чаще всего /metrics. Система мониторинга (например, Prometheus) регулярно опрашивает этот эндпоинт по pull-модели, забирает числовые показатели и сохраняет их во временную базу данных. Затем Grafana подключается к этой базе и отображает данные в виде графиков и панелей.

Итого: приложение отдаёт метрики, система мониторинга их собирает и хранит, Grafana — визуализирует и помогает анализировать.


tags: #собеседование

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥1🤔1
SQL Basics.pdf
102.8 KB
💻 Подборка шпаргалок по SQL

Собрали для вас короткие и понятные шпаргалки по основным темам:
Основы языка SQL;
JOIN’ы с наглядными примерами;
Оконные функции;
SQL для анализа данных.


Отличный комплект, чтобы освежить знания перед собесом или быстро вспомнить синтаксис.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍43
Вопрос с собеседования

Что такое неконтролируемые ресурсы в Java и как с ними работать?

Ответ: Неконтролируемые ресурсы — это ресурсы, которые не управляются автоматически сборщиком мусора. К ним относятся файловые дескрипторы, сетевые соединения, потоки ввода-вывода, подключения к базе данных и другие внешние ресурсы.

В отличие от обычных объектов в памяти, такие ресурсы необходимо освобождать вручную, иначе возможны утечки и исчерпание системных лимитов.

Для корректной работы с ними используется интерфейс AutoCloseable и конструкция try-with-resources, которая гарантирует автоматический вызов метода close() даже при возникновении исключения.


tags: #собеседование

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
👩‍💻 Запросы к MongoDB из Java с помощью билдера фильтров

В статье показано, как с помощью класса Filters удобно строить фильтры для запросов к MongoDB — например, искать документы по условию, диапазону или списку значений.

Примеры охватывают методы eq, gt, in, or, regex и другие, с пояснениями и готовыми сниппетами кода.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Нынче это повод для гордости

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁375💯4