Чашечка Java
8.57K subscribers
3.88K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Как я прогулялся из 1С в Java и захотел обратно

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

Данная статья будет полезна для тех, кто решил вырваться из цепких лап экосистемы 1С или же наоборот сэкономить свое драгоценное время.


Читать: https://habr.com/ru/articles/928260/?utm_campaign=928260

@a_cup_of_java | Другие наши каналы
😱2👎1
Как правильно конвертировать java.util.Date в LocalDate в Java 8
В статье рассматриваются способы перевода старого объекта Date в новый LocalDate с помощью Instant, миллисекунд и java.sql.Date. Особое внимание уделено отличиям между классами и выбору оптимального метода для корректной работы с датами в Java 8. Лучшие курсы и материалы по программированию: от Java 8 с подробными уроками по дате и времени до бесплатных курсов по Git, Docker и DevOps. В статье собраны полезные ресурсы для изучения современных технологий и подготовки к собеседованиям. Топовые вопросы и темы для подготовки к собеседованиям в IT: от SQL и Java до искусственного интеллекта и системного дизайна. Полезные материалы для разработчиков и администраторов баз данных, а также советы по курсам и ресурсам для изучения.

Подробности: http://www.java67.com/2016/12/best-way-to-convert-javautildate-to-javatime-LocalDate-in-Java8.html

#en

@a_cup_of_java | Другие наши каналы
4
Как форматировать дату в строку в Java 8
В Java 8 для изменения формата даты из строки используется класс DateTimeFormatter вместе с LocalDateTime. Этот подход заменил устаревший SimpleDateFormat, став более безопасным и удобным для работы с датами в многопоточных приложениях. Почему стоит избегать старого API даты и времени в Java? Современный DateTime API в Java 8 упрощает работу с датами и временем, устраняет ошибки и делает код чище. Обзор курсов и примеров поможет освоить новые возможности быстро и эффективно. Топовые вопросы для подготовки к собеседованию по Spring

В статье собраны ключевые вопросы по Spring Boot, Spring Cloud, Spring MVC и микросервисам, которые помогут успешно пройти техническое интервью и повысить свои шансы на позицию разработчика Java.

Подробности: http://www.java67.com/2018/01/how-to-change-date-format-of-string-in-java8.html

#en

@a_cup_of_java | Другие наши каналы
Работа с датой и временем в Java 8: DateTimeFormatter

Статья подробно рассказывает о возможностях DateTimeFormatter в Java 8 для форматирования и парсинга дат с учётом разных форматов и локалей. Рассмотрены примеры использования с LocalDateTime и ZonedDateTime для удобной работы с датами и временем.

Подробности: http://www.java67.com/2019/01/10-examples-of-format-and-parse-dates-in-java.html

#en

@a_cup_of_java | Другие наши каналы
Ролевой контроль в приложении: вариант реализации

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

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


Читать: https://habr.com/ru/companies/simbirsoft/articles/928104/?utm_campaign=928104

@a_cup_of_java | Другие наши каналы
1
Spring boot, многопоточка и магия вне хогвартса

Всем привет! Меня зовут Алексей, и я работаю Java‑разработчиком с 2018 года. В статье расскажу, как столкнулся с проблемой обработки MultipartFile в многопоточном режиме. Почему эта проблема возникает и какие решения существуют.

Изначально стояла задача организовать фоновую обработку Excel-файлов: принимать файл, мгновенно возвращать клиенту HTTP-200 (без данных), а обработку содержимого выполнять асинхронно в отдельном потоке.

Вроде задачка тривиальная. Делаем контроллер:


Читать: https://habr.com/ru/companies/rostelecom/articles/928016/?utm_campaign=928016

@a_cup_of_java | Другие наши каналы
Циклические зависимости в Spring: проблема и способы её решения

Если вы хоть раз разрабатывали проект на Spring, наверняка сталкивались с циклическими зависимостями. Эта проблема настолько распространена и одновременно болезненна, что о ней можно услышать как от спикеров, так и от участников крупнейших технических конференций.

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

К счастью, современные инструменты разработчика позволяют решать эту задачу намного быстрее и эффективнее.

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


Читать: https://habr.com/ru/companies/haulmont/articles/928134/?utm_campaign=928134

@a_cup_of_java | Другие наши каналы
📢 Выходцы из Jetbrains запилили годноту для Java/Kotlin-разработчиков.

Стартап называется ❇️ Explyt.
Они только что выкатили мощный релиз.

Вкратце: это плагин в IDE, который сам генерирует тесты с интересными возможностями:

✔️ Vibe debugging. За счет интеграции с IDE, плагин собирает данные по исполнению программы и генерирует тест по этим данным, что экономит время на тестировании и отлавливает ошибки на 80-90% (!)

✔️ Агентский режим. Ассистент, который живёт в проекте и следит за покрытием, сам находит незакрытые места и предлагает тесты. Работает в фоне, как часть команды.

👉 Кому интересно - вот ссылка на релиз и установку плагина
1
Пример реализации слоя приложения persistence layer без использования ORM фреймворка

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

В этой статье рассмотрен пример реализации слоя persistence layer без использования ORM фреймворка. Предлагаемое решение является простым и в тоже время достаточно универсальным для использования в языках программирования, поддерживающих объектную модель.


Читать: https://habr.com/ru/articles/928616/?utm_campaign=928616

@a_cup_of_java | Другие наши каналы
IntelliJ IDEA переходит на единый дистрибутив

Команда Spring АйО перевела статью от JetBrains, в которой анонсировано важное обновление: начиная с версии 2025.3, IntelliJ IDEA будет распространяться в виде единого дистрибутива, вместо отдельных версий Community и Ultimate.

Теперь каждый разработчик получит более мощный, гибкий и удобный инструмент «из коробки», независимо от подписки. Open source-компоненты по-прежнему доступны, а новая модель обещает улучшенный user experience, бесплатный доступ к большему числу функций и упрощённый процесс сборки из исходников.


Читать: https://habr.com/ru/companies/spring_aio/articles/928668/?utm_campaign=928668

@a_cup_of_java | Другие наши каналы
5🤪3👌2
Как найти работу в IT за границей в 2025 году: ответы на часто задаваемые вопросы и рекомендации экспертов

Свежая статистика, исследования и советы экспертов: как российским IT-специалистам найти работу за границей в 2025 году.

Читать: «Как найти работу в IT за границей в 2025 году: ответы на часто задаваемые вопросы и рекомендации экспертов»

@a_cup_of_java | Другие наши каналы
Безопасное преобразование строк в дату в Java
В статье подробно разбираются способы конвертации строк в дату с учётом многопоточности. Рассматриваются проблемы SimpleDateFormat и решения через ThreadLocal и новый API Java 8, что помогает избежать ошибок в многопоточных приложениях.

Подробности: http://www.java67.com/2014/12/string-to-date-example-in-java-multithreading.html

#en

@a_cup_of_java | Другие наши каналы
Как преобразовать Date в LocalDate в Java 8
В статье рассказывается, как конвертировать устаревший java.util.Date в современный LocalDate с помощью Java 8 Date Time API. Приводятся два простых способа: через java.sql.Date и Instant с учетом часового пояса. Полезно для поддержки старого кода. Топовые вопросы для подготовки к собеседованию по Java и смежным технологиям. В статье собраны примеры по датам, коллекциям, многопоточности, SQL, Spring, а также лучшие курсы и ресурсы для углубленного изучения и успешного прохождения интервью. Архив блогов: обзор публикаций по годам и месяцам

В статье представлен подробный архив публикаций с 2012 по 2024 год, систематизированный по годам и месяцам. Это удобный инструмент для быстрого поиска и анализа контента за разные периоды времени.

Подробности: http://www.java67.com/2020/04/how-to-convert-date-to-localdate-in-java-example-tutorial.html

#en

@a_cup_of_java | Другие наши каналы
Вредные советы Java: просто используй Parellel Stream

Stream'ы в java явление давно не новое. Старая добрая Java 8 появилась на свет более 10 лет назад. С появлением Stream API жизнь стала проще и веселее. Но есть в Stream API два гадких утёнка: Stream#close и Stream#parallel.

С первым все достаточное просто — если не уверен в источнике откуда берется Stream — то он может быть вполне себе ресурсом и требовать try‑with‑resources (привет java.nio.file.Files#list). Cо вторым куда веселее...


Читать: https://habr.com/ru/articles/929120/?utm_campaign=929120

@a_cup_of_java | Другие наши каналы
Разница между BufferedReader и Scanner в Java
BufferedReader подходит для чтения больших текстовых данных и работает быстрее при чтении строк благодаря большему буферу. Scanner же умеет читать и преобразовывать данные в разные типы, удобен для работы с пользовательским вводом. Топовые материалы для разработчиков и IT-специалистов: от основ Java и структур данных до передовых тем — Big Data, Blockchain, машинного обучения и DevOps. Статья охватывает широкий спектр знаний и ресурсов для эффективного обучения и подготовки к интервью. Разница между демонами и пользовательскими потоками в Java

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

Подробности: http://www.java67.com/2016/06/5-difference-between-bufferedreader-and-scanner-in-java.html

#en

@a_cup_of_java | Другие наши каналы
1
Как исправить SSLHandshakeException в Java
Ошибка "javax.net.ssl.SSLHandshakeException: unable to find valid certification path" возникает из-за отсутствия нужного корневого сертификата в truststore Java. Решение — добавить в truststore корневой сертификат сервера, используя keytool. Лучшие материалы для IT и программирования в одном месте. Включая статьи по Java, Spring, SQL, Kubernetes и многим другим технологиям, а также подготовку к интервью и сертификациям. Полезно как новичкам, так и опытным разработчикам. Статистика публикаций сайта за последние годы показывает активность по месяцам и годам. Наибольшее число постов приходится на 2023 и 2024 годы, что свидетельствует о постоянном обновлении и развитии ресурса.

Подробности: http://www.java67.com/2019/06/javaxnetsslsslhandshakeexception-PKIX-path-building-failed-ssl-certificate.html

#en

@a_cup_of_java | Другие наши каналы
Ошибка доступа к BASE64Decoder в Eclipse: как исправить
В Eclipse возникает ошибка из-за использования неофициального класса BASE64Decoder из пакета sun.misc. Решение – отключить ошибку в настройках или перейти на стандартный Base64 из Java 8. Это повысит совместимость и избавит от проблем. Топовые вопросы для подготовки к интервью по Spring и Java. В статье собраны актуальные темы и примеры вопросов для успешного прохождения собеседований, включая Spring Boot, Microservices, SQL и OBJECT oriented programming. Полезно для разработчиков всех уровней. Архивы и тренды: обзор публикаций по годам и месяцам

Статья представляет структуру архивов блога с разбивкой по годам и месяцам, показывая динамику публикаций с 2012 по 2020 год. Это полезно для анализа активности автора и поиска материалов по датам.

Подробности: http://www.java67.com/2020/04/eclipse-access-restriction-type-not-accessible-due-to-restriction-error.html

#en

@a_cup_of_java | Другие наши каналы
«Эра Flink 2.0»: что реально меняется в архитектуре real‑time вычислений

Apache Flink 2.0 — первый мажорный релиз после 1.0 (2016), закрывающий многолетний цикл эволюции архитектуры и устраняющий накопленные болевые точки масштабирования потоковых платформ: усложняющуюся конфигурацию, ограниченность локального состояния, разрыв между batch и streaming, устаревшие API и операционную стоимость при росте AI/real‑time сценариев. В команде BitDive мы уже используем Flink 2.0 для низколатентной обработки потоковых метрик и трассировок (агрегация, выделение аномалий) — это позволило ускорить recovery и снизить стоимость вычислений по сравнению с линией 1.20.x.


Читать: https://habr.com/ru/articles/929222/?utm_campaign=929222

@a_cup_of_java | Другие наши каналы
REST API в облаке: пошаговый гайд на Java + Spring

Представьте, что у вас есть бэкенд-приложение с REST API и вы хотите обращаться к нему не только с локальной машины, но и из интернета — через браузер, Postman, фронтенд или мобильное приложение. Для этого можно настраивать маршрутизацию, туннелирование, искать белый IP — или просто задеплоить приложение в облако. Под катом — пошаговая инструкция, в которой развернем Java-приложение на облачном сервере и пошагово пройдем весь процесс — от сборки до запуска и обращения к API извне.
Изучить инструкцию

Читать: https://habr.com/ru/companies/selectel/articles/927736/?utm_campaign=927736

@a_cup_of_java | Другие наши каналы
Spring Security

Spring Security – это мощный и важный фреймворк в Spring
для обеспечения безопасности приложения при помощи аутентификации
и авторизации. Основан на цепочке фильтров. Например, в Spring Security 6.5.1.
по умолчанию стандартная цепочка фильтров (FilterChainProxy) содержит
до 12-16 фильтров, выполняющих различные механизмы проверки.
Стоит отметить, что точное количество фильтров зависит от конфигурации.


Читать: https://habr.com/ru/articles/927788/?utm_campaign=927788

@a_cup_of_java | Другие наши каналы