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

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

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

Другие каналы: @tproger_channels
Download Telegram
Топ-20 вопросов и ответов на собеседовании по модификатору доступа в Java для начинающих (2023)

Модификаторы доступа - одна из важнейших концепций языка Java, с которой должен быть знаком каждый программист
с которым должен быть знаком каждый программист, и из-за его важности он также является популярной темой на собеседованиях по Java
популярной темой на собеседованиях по Java. Модификатор доступа может быть применен к классу, методу,
полям и переменным, и, как следует из названия, они управляют доступом. Например,
кто может получить доступ к данному классу, методу или переменной. Например, модификатор public
обеспечивает универсальный доступ, что означает, что любой открытый класс, метод или переменная доступны всем и везде
доступны всем и везде. Другими словами, вы можете получить доступ к публичному
классу как внутри пакета, так и за его пределами.

Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2022/05/java-access-modifier-interview.html
👍1
Чашечка Java
Photo
3 Способа отправки HTTP GET и POST запросов в Java? Учебное пособие JDK 11 HttpClient Example

Здравствуйте, ребята, сегодня речь пойдет о современных веб-приложениях и API, и в этом мире умение общаться с удаленными серверами является необходимым навыком для Java-разработчиков. Независимо от того, нужно ли вам получить данные из веб-сервиса или отправить их на сервер для обработки, владение искусством выполнения HTTP-запросов имеет решающее значение. Если вы являетесь Java-разработчиком, то для эффективной работы с различными типами Java-приложений вы должны знать, как отправлять HTTP-запросы и анализировать HTTP-ответы. Если вы не знаете, то не волнуйтесь, поскольку в этом подробном руководстве мы расскажем вам о фундаментальных концепциях и практических приемах отправки HTTP GET и POST запросов в Java. Независимо от того, являетесь ли вы новичком, желающим изучить основы, или опытным разработчиком, стремящимся усовершенствовать свои навыки, это руководство вооружит вас знаниями и инструментами для эффективного взаимодействия с веб-сервисами с помощью Java.

Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2023/09/3-ways-to-send-http-get-and-post.html
Java News Roundup: Single Query Loading, GraalVM, GlassFish, JReleaser, Quarkus, Micronaut

This week's Java roundup for August 28th, 2023 features news from OpenJDK, JDK 22, JDK 21, GraalVM Native Build Tools 0.9.25, Single Query Loading in Spring JDBC, Quarkus 3.3.1, 3.2.5.Final and 2.16.10.Final, Micronaut 4.1.0 and 4.0.6, Wildfly 29.0.1, Hibernate ORM 6.3.0 and 6.2.8, Hibernate Reactive 2.0.5, GlassFish 7.0.8, Eclipse Vert.x 4.4.5, JKube 1.14.0, JReleaser 1.8.0 and OpenXava 7.1.5.
By Michael Redlich

Read: https://www.infoq.com/news/2023/09/java-news-roundup-aug28-2023/
Монолитная и микросервисная архитектура. Сравнение

Во время технических презентаций нашей технологии – платформы быстрой разработки Jmix – мы, как правило, доходим до вопроса архитектуры создаваемых приложений и часто встречаем грусть в глазах разработчиков, когда сообщаем, что создаваемое приложение имеет монолитную архитектуру. Удивительно, но случается, что команды разработки приложений на Delphi или Oraсle EBS непременно заинтересованы в реализации микросервисной архитектуры, отождествляя ее с чем-то очень современным и самым продвинутым. К счастью, хайп вокруг микросервисов постепенно начал замещаться новой информационной повесткой о необходимости рационального использования ресурсов и выбора типа архитектуры приложений на основе компетенций команд разработчиков и масштабов создаваемого решения. В Jmix есть все необходимое, чтобы создавать современные корпоративные информационные системы в рекордные сроки и с минимальными затратами. Мы понимаем, что монолитная архитектура приложений Jmix не может закрыть все кейсы, но мы верим, что для каждой задачи есть подходящий инструмент. Прочитайте перевод статьи из блога Camunda, возможно, она поможет понять какой тип архитектуры подходит для вашего проекта, чтобы сэкономить время, деньги и нервы.

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


Читать: https://habr.com/ru/companies/haulmont/articles/758780/?utm_campaign=758780
Аудит пользователей Spring Data JPA

Задача: в бд необходимо фиксировать кто создал сущность, кто её обновил, и кто её удалил.

Все знают, как взять пользователя из контекста и сунуть его в сущность. Допустим, на уровне сервиса в методе извлечь информацию о нём и “засетать” его в нужные поля (придётся везде таскать этот кусок кода по сервису), к тому же, с использованием так называемых "аспектов" этот процесс может стать менее очевидным и создать дополнительные обязательства. (например, развешивание аннотаций над методами всякий раз, когда мы что-то пытаемся сделать с сущностью (новые участники команды могут не знать о такой неявной практике, а старые забыть о ней)).

Мне хотелось полностью делегировать это приложению, но погуглив, я не нашёл какого-то явного решения. Сейчас расскажу, как мне удалось это сделать:


Читать: https://habr.com/ru/companies/nlmk/articles/757866/?utm_campaign=757866
👍1
Динамическое создание слушателей в Kafka

Эта статья объясняет, как создать слушатель в Kafka на лету в процессе работы приложения c помощью простой детальной инструкцией.

В процессе разработки решение использовался язык программирования Java.


Читать: https://habr.com/ru/articles/758958/?utm_campaign=758958
👍3
Параллельность в Java на практике

Как следует из названия, здесь будет только про параллельное выполнение (не путать с конкурентностью). Так же я не буду затрагивать проект Loom, который «должен убить» все остальные подходы написания параллельного кода. Надеюсь изложенное ниже позволит начинающим java программистам разобраться с разными подходами и структурировать имеющиеся знания.

Начинающие java программисты, разрабатывая новые сервиса, сталкиваются с задачей выбора технологий, фреймворков и т. д. При написании параллельного кода так же есть множество различных вариантов. Вряд ли кто‑то будет создавать и запускать треды вручную, но можно использовать старый добрый ExecutorService. Можно выбрать Stream API или Reactor с его реализацией параллельной обработки. Есть ещё Akka и куча других экзотических фреймворков. Некоторые из них разработаны под набор конкретных задач, другие же вроде подходят для любых. И как оценить производительность того же Reactor против ExecutorService, или же, например, используя Stream API. Попробуем разобраться.


Читать: https://habr.com/ru/articles/759054/?utm_campaign=759054
Создание приложения для распознавания текста с изображений и аудиофайлов

Запись текста с фотографии листа или из аудиозаписи в текстовый файл, доступный для редактирования – довольно часто встречающаяся задача при работе в офисах или учёбы. Для распознавания текстов и аудио в платных сервисах и программах сегодня используются такие подходы, как машинное зрение и распознавание речи с использованием глубоких нейронных сетей.

Детектирование (обнаружение) и классификация символов на изображении осуществляется с использованием различных архитектур свёрточных нейронных сетей [1]. Обработка естественного языка основана на использовании глубоких рекуррентных нейронных сетей, состоящих из ячеек долгой краткосрочной памяти LSTM [2]. При создании соответствующих приложений для работы с текстами, этап реализации нейронных сетей можно пропустить, используя соответствующие свободно распространяемые библиотеки.

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


Читать: https://habr.com/ru/articles/758882/?utm_campaign=758882
Байки джависта

Привет, Habr!

Я конечно неДжеймс Гослинг , но за долгое время работы с Java у меня накопилась масса мыслей.

Мысли по написанию кода, о подводных камнях типаNull safety , советы для любителей усложнять, байки бывалого погромиста про 0-day в Spring, экзистенциальные переживания при работе с мегабайтами легаси, очевидные советы, которые так сложно даются сеньорам — и ещё масса полезных размышлений в связке с примерами кода.


Читать: https://habr.com/ru/articles/759102/?utm_campaign=759102
Delivery Hero Optimizes Member System with Event-Driven Architecture

Baemin, a food delivery service experiencing rapid growth, has successfully navigated the transition from a monolithic architecture to a more flexible, microservices-based system. A cornerstone of this transformation is the implementation of an event-driven architecture.
By A N M Bazlur Rahman

Read: https://www.infoq.com/news/2023/09/delivery-hero-uses-eda/
Чашечка Java
Photo
10 лучших принципов проектирования микросервисов с примерами

Здравствуйте, ребята, сегодня мир посвящен микросервисам, потому что микросервисы идут рука об руку с облачными вычислениями
рука об руку с облачными вычислениями. Они предназначены для работы в облачных вычислениях
Вычислений. Поскольку все новые разработки программного обеспечения, скорее всего, будут
cloud-native, разработчикам важно узнать о Microservices,
особенно Java-разработчикам. Чтобы помочь в этом, я поделился лучшими курсами по микросервисам
и книгами
а также 10 паттернов проектирования микросервисов, а в этой статье я расскажу о 10 общих принципах проектирования микросервисов
принципами. Если вы задаетесь вопросом, в чем разница между паттернами и
принципами? Ну, между ними есть тонкая разница: принципы более детализированы и помогают принимать решения, а принципы
более детализированы и помогают в принятии решений, в то время как паттерны представляют собой проверенные и протестированные решения
решение общих проблем программного обеспечения, но и те, и другие помогают лучше разрабатывать программное обеспечение
проектирования.
Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2023/09/top-10-microservices-design-principles.html
Чашечка Java
Photo
Разница между HashMap vs TreeMap vs LinkedHashMap в Java

Здравствуйте, ребята, если вы задаетесь вопросом, в чем разница между HashMap, TreeMap и LinkedHashMap в Java и когда следует использовать HashMap, TreeMap и LinkedHashMap в Java, то вы попали по адресу. Ранее я уже рассказывал о различиях между HashSet, TreeSet и LinkedHashSet, а в этой статье я объясню разницу между этими тремя распространенными реализациями Map - HashMsp, TreeMap и LinkedHashMap. Хотя все три класса, такие как HashMap, LinkedHashMap и TreeMap, являются
реализацией интерфейса java.util.Map, между ними существует некоторая функциональная разница
между ними. Пожалуй, наиболее заметное различие между ними заключается в их
порядке итераций
. HashMap не дает никаких гарантий относительно того, в каком порядке можно перебирать ключи
любое приложение, зависящее от порядка итераций в HashMap, является хрупким
HashMap является хрупким, поскольку он может измениться в любой момент. Более того, в Java 7,
порядок итераций HashMap отличается от Java 6.

Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2022/05/hashmap-vs-treemap-vs-linkedhashmap-in.html
👍31🔥1
Высокие технологии или дешевые фокусы с двойным дном

Отлаживал я как-то тесты и параллельно размышлял о null-safety. Звезды сошлись и родилась довольно странная идея - замокать null.


Читать: https://habr.com/ru/articles/759344/?utm_campaign=759344
Java Digest #4

Всем привет! 👋 👋 👋 Мы Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и решили делиться этим не только с коллегами, но и со всем сообществом.

В этот раз эпиграф к выпуску нам придумал ChatGPT:

In the whimsical world of Java, where code dances with curiosity and logic wears a hat of wonder, our Java Digest takes you on a delightful journey through the rabbit hole of programming brilliance.

Stay tuned! 🙂
Читать четвертый выпуск

Читать: https://habr.com/ru/companies/tinkoff/articles/759432/?utm_campaign=759432
1
Как добавить кастомный аутентификатор в KeyCloak и подружить его со сторонней системой

Всем привет.

Сегодня мы покажем вам простой пример, как в Keycloak можно добавить кастомный аутентификатор.

Как вы все знаете, Keycloak – это система адаптивной аутентификации, позволяющая реализовать фактические любой процесс аутентификации (ограниченный только навыками разработки на Java) и выступать в качестве Identity Provider для клиентов по протоколам OIDC и SAML.

В стандартном наборе представлено много типовых аутентификаторов. Но что делать, когда стандартных аутентификаторов недостаточно и необходимо реализовать свою логику? Официальная документация дает ответ: разработать аутентификатор самому: https://www.keycloak.org/docs/latest/server_development/#_auth_spi

Что мы в итоге и сделали.


Читать: https://habr.com/ru/companies/k2tech/articles/759600/?utm_campaign=759600
Presentation: Malignant Intelligence?

Alasdair Allen discusses the potentially ethical dilemmas, new security concerns, and open questions about the future of software development in the era of machine learning.
By Alasdair Allen

Read: https://www.infoq.com/presentations/machine-learning-ethics/
Всё, что вы хотели знать о Java, но не доходили руки спросить: что будет на Joker 2023

Как ускорить запуск JVM? Каково переходить с SQL на Cassandra? Что нас ждёт в Java 21? Как профилируют в Alibaba? Какие части Java были сделаны в России? И как в названия докладов на Java-конференции прокралось не только слово «Kotlin», но и «Python» с «PHP»?

На все эти и многие другие вопросы ответит Joker 2023. До конференции остался месяц, её программа готова — представляем её Хабру.
Программа Joker 2023

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