Telegram Web Link
🌟Вышел очередной дайджест новостей Kotlin!

Этот выпуск посвящен многим интересным событиям в мультиплатформенной экосистеме Kotlin.

➡️ https://blog.jetbrains.com/kotlin/2023/12/kotlin-news-nov-23/

🌟 Представляем Amper, новый экспериментальный инструмент для настройки проектов
🌟 Мультиплатформа Kotlin стабильна и готова к работе
🌟 Мультиплатформа Kotlin приходит в JetBrains Fleet
🌟 Вышли Kotlin 1.9.20 и 1.9.21
🌟 Руководство по Compose Multiplatform
🌟 Дорожная карта развития Kotlin Multiplatform на 2024 год
🌟 Серия вебинаров по Kotlin Multiplatform в ноябре
🌟 Code 2023 в Kotlin

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥2
👨‍💻Сложные вопросы на собеседовании для тех, кто 7 лет работал с Java. Часть 1

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

Но на собеседованиях даже опытные разработчики не справляются с каверзными вопросами, которыми проверяются их знания и навыки решения задач. Разберем некоторые их этих вопросов с подробными объяснениями и примерами.

1. Для чего и как в Java используется ключевое слово «transient»?
При сериализации объекта его состояние преобразуется в последовательность байтов, записываемой в файл или отправляемой по сети.

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

Примеры использования ключевого слова transient: когда имеется поле с временным значением, которое не нужно сохранять при сериализации объекта; или поле с конфиденциальными данными, не включаемое в сериализованную форму объекта по соображениям безопасности.

public class MyClass implements Serializable {
private int myInt;
private transient String myTransientString;
// Конструктор, геттеры, сеттеры ради простоты игнорируем
// Другие методы…
}


В этом примере поле myTransientString помечено как transient: его значение не будет включено при сериализации экземпляра MyClass.

2. Чем наследование отличается от композиции? Приведите пример.
Наследование и композиция — два фундаментальных способа создания связей между классами в ООП. В обоих подходах возможны переиспользование кода и абстракция, но с разной реализацией и типами таких связей.

Вот краткое описание каждого подхода.

▪️Наследование. Это механизм, при котором новый класс, называемый подклассом или производным классом, создается наследованием свойств и характеристик — методов и полей — имеющегося класса, называемого суперклассом или базовым классом. Кроме того, методы суперкласса переопределяются подклассом в его собственной реализации. Наследованием между суперклассом и подклассом создаются отношения is-a («это»).
▪️Композиция. Это механизм, при котором в полях одного класса, называемого контейнером или целым классом, содержится минимум один экземпляр другого, называемого компонентным или составным классом. Композицией между классом-контейнером и компонентным классом создаются отношения has-a («имеет»).

📌 Читать дальше

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍244🤬2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Обзор архитектуры безопасности Spring Security

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

1️⃣Менеджер аутентификации:
- Отвечает за проверку учетных данных пользователей.
- Использует различные провайдеры аутентификации (например, LDAP, JDBC).
2️⃣Контекст безопасности:
- Хранит информацию о текущем аутентифицированном пользователе.
3️⃣Провайдер аутентификации:
- Реализует фактический процесс аутентификации.
4️⃣Авторизация:
- Контролирует доступ к определенным ресурсам на основе ролей и разрешений пользователей.

🔄 Поток аутентификации:

1️⃣Цепочка фильтров:
- Каждый фильтр обрабатывает определенный аспект процесса аутентификации.
2️⃣Аутентификация по имени пользователя и паролю:
- Типичный вход в систему включает в себя фильтр UsernamePasswordAuthenticationFilter.
- Проверяет учетные данные пользователя в AuthenticationManager.
3️⃣Аутентификация на основе токенов:
- Обеспечивает аутентификацию без статических данных с помощью токенов (например, JWT).

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥62
🖥 Совет 🚀 Java API 🚀

При использовании Integer.valueOf(int) помните, что значения между -128 и 127 кэшируются для повышения производительности.

За пределами этого диапазона создаются новые объекты.

Размер кэша можно контролировать с помощью параметра -XX:AutoBoxCacheMax=<size>. 🔥

#Java #Производительность

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍71
🔥 Дайджест полезных материалов из мира Java за неделю

Почитать:
Немного о гигиене Java кода
Польза создания однородных задач для параллельного вычисления
Безопасность web приложений с использованием Identity Provider
Java Digest #7
8 бесплатных курсов по большим языковым моделям
Современные варианты баз данных
Деплой приложения на Java. Хостим проект через push в Git
QIWI Server Party 9.0 — 14 декабря, офлайн и онлайн
Как распараллелить тесты с базой данных
Хроники пикирующего бота или как важно не пропускать стадию QA в проектах
Генерация контрактов OpenApi или прикладной API first: совсем немного про зачем
Компоновка аннотаций в Spring
Dominando la Programación Orientada a Objetos
Try to add new feature to a Java Spring boot project
Few words about Java code hygiene
RabbitMQ Retry Strategy: Delay with Maximum Retry Threshold
Mi experiencia con GraalVM y Spring Boot
Records and data transfer
Comparing Java and JavaScript
Day when Skynet becomes self-aware, and 69 reasons to chill out with colleagues. Part 1.
How Gradle disagreed with our Maven project
What is Amortized Time Complexity Analysis

Посмотреть:
🌐 Ollama — модель уровня GPT. Используй GPT без ограничений и абсолютно бесплатно.
🌐 Another VS Code Extension For Java ? ( 07:38)
🌐 Java 22 Unpacking - Inside Java Newscast #59 ( 12:23)
🌐 What is multiple inheritance? - Cracking the Java Coding Interview ( 00:59)
🌐 What is the first thing a consructor is doing? - Cracking the Java Coding Interview #java ( 01:00)
🌐 Getting Started with Generational ZGC ( 12:49)
🌐 Looking up Default Locale in Java 21 ( 02:01)
🌐 Аналитики больше технари, чем программисты? Чья работа сложнее? ( 01:06:26)
🌐 Сильная мотивация для джунов в IT — Евгений Кот ( 00:38)
🌐 Когда нужно искать первую работу в IT — Андрей Смирнов ( 00:37)

Хорошего дня!

@javatg
👍101🔥1
🚀 Spring Совет 🚀

Кэшируемая аннотация обеспечивает быстрый доступ к данным.

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html

#Spring #SpringBoot

@javatg
7👍2🔥2
💡 В Mockito 5.7.0 (входит в Spring Boot 3.2) появился упрощенный способ создания захватчиков аргументов:

@javatg
👍201🔥1
🖥 Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 2

Что представляют собой HTTP-методы?
Вот наиболее часто используемые HTTP-методы.

1. GET: получает ресурс или данные с сервера.

2. POST: отправляет данные для обработки на сервер, что обычно приводит к созданию нового ресурса.

3. PUT: обновляет или заменяет существующий ресурс новыми данными.

4. DELETE: удаляет конкретный ресурс.

5. PATCH: частично обновляет существующий ресурс новыми данными.

6. HEAD: получает метаданные ресурса без извлечения его фактического содержимого.

7. OPTIONS: возвращает допустимые HTTP-методы и возможности сервера для данного ресурса.

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

Что такое идемпотентность? Назовите идемпотентные методы
В REST (Representational State Transfer, передача репрезентативного состояния) под идемпотентностью понимается свойство некоторых HTTP-методов, при котором повторные идентичные запросы имеют тот же эффект, что и один запрос. Другими словами, многократное выполнение идемпотентной операции приводит к тому же результату, что и однократное.

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

В REST идемпотентными считаются следующие HTTP-методы.

▪️GET: многократное получение ресурса не изменяет состояние сервера.
▪️PUT: многократное обновление ресурса одними и теми же данными приводит к одному и тому же результату.
▪️DELETE: многократное удаление ресурса приводит к одному и тому же результату.

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

Что такое @Async в Spring Boot?

📌Читать

📌Часть 1

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥43
🚀 Расширенные советы по Spring 🚀

Протоколирование HTTP-запросов с помощью фильтра CommonsRequestLoggingFilter

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

Подробнее: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/CommonsRequestLoggingFilter.html

#SpringTip #Java

@javatg
👍151🔥1
😁56👍7🔥4👎2🤔2
🔥Подборка лучших обучающих каналов для программистов.

➡️Делитесь с коллегами и Сохраняйте себе, чтобы не потерять

Машинное обучение

Machine Learning - полезные статьи новости гайды и разбор кода
Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат

🚀 Data Science

Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data

🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go



#️⃣C#

С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа

🐍 Python

Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги

Java

Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги

💻 C++

C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии

💥 Хакинг Kali Linux

Kali linux
linux_kal - kali чат
Информационная безопасность

🐧 Linux

Linux academy

🦀 Rust
Rust программирование
Rust чат

🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат

📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки

🖥 Javascript/React/PHP
Javascript академия
React программирование
PHP
Книги frontend
Задачи frontend

🇬🇧 Английский для программистов

🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence

🔥 DevOPs
Devops для программистов
Книги Devops
Docker

📓 Книги
Библиотеки Книг для программситов

💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
👍10🔥31👎1
🚀 Совет по IntelliJ - создайте свой собственный значок проекта 🚀

Определите пользовательский значок для вашего проекта в IntelliJ, который будет отображаться на экране приветствия. 🔥

@javatg
👍194🔥3
🖥 Совет: Самый простой способ сделать валидацию нескольких полей без дополнительных классов и аннотаций - использовать @AssertTrue.

Вы помещаете его над методом, возвращающим булеву величину. Имя метода должно начинаться с "is".

#Java #Bean #Валидация

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥31👎1
🚀 Совет по Spring 🚀

Обработка длительных процессов с помощью @Scheduled в Spring. 🔥

@javatg
👍15🔥51
🖥 conductor-oss/conductor

Conductor - это платформа, изначально созданная в Netflix для оркестровки микросервисов и событий, написанный на Java.

Conductor OSS поддерживается командой разработчиков в Orkes вместе с членами сообщества с открытым исходным кодом.

git remote set-url origin https://github.com/conductor-oss/conductor

Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥41
🚀 Совет по API Java 🚀

java.util.IdentityHashMap

В отличие от HashMap, этот класс использует равенство ссылок (==), а не равенство объектов (equals()) для определения уникальности ключей, что делает его подходящим для конкретных случаев использования. 🔥

https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html

@javatg
👍183🔥2
🖥Если вы пропустили, Spring Boot 3.2.1 и 3.1.7 были выпущены сегодня.

https://spring.io/blog/2023/12/21/spring-boot-3-2-1-available-now/

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥3
🖥 Основные принципы сборки мусора в Java

Сборка мусора (СМ) — это форма автоматического управления памятью. В языках, где отсутствует такая функция, программистам приходится вручную выделять и освобождать память.

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

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

📌 Читать

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍152🔥1
💡Задача: Сумма вдоль столбцов

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

Есть условие на движение вдоль столбца есть ограничение: можно перемещаться на ячейку вниз лишь по диагонали или строго вниз.

Пример:

Ввод:
matrix = [[2,1,3],[6,5,4],[7,8,9]]
Вывод: 13
Объяснение: *во вложении

Решение

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2🔥1🥰1🤔1
🔥 Дайджест полезных материалов из мира Java за неделю

Почитать:
Быстрый старт. SpringBoot + RabbitMQ
Контейнеризация справочников НСИ
Разносим по полочкам этапы тестирования http запросов в Spring
— Полный отчет Github за 2023 о состоянии проектов.
9 вопросов для собеседования по SQL в Apple
Работаем с enum в kotlin/jvm правильно
Идемпотентность: больше, чем кажется
Проектирование БД рекомендательной системы по подходу DB-first
FizzBuzz for Senior
Stone. Квалификаторы и идентификаторы
Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0
Простой сервис аутентификации. SpringBootSecurity
Gemini Function Calling
Quarkus : Greener, Better, Faster, Stronger
Bubble Sorting in Java - Detailed Explanation
#30days50question
Riding the Wave: A Fun Dive into the World of Streaming Applications
What's trending in Flutter
Who chooses programming in Java? 🤔💻
Mockando LocalDateTime.now()
GraphQL Java Data Loader
From Java2D to a custom game engine, the past present, and future

Посмотреть:
🌐 Upgrading to Java 21? You'll want avoid these features. ( 02:36)
🌐 Java Highlights of 2023 ( 12:51)
🌐 What is the no-arg empty constructor? - Cracking the Java Coding Interview #codinginterview #java ( 01:00)
🌐 What are the four fundamental functional interfaces in Java? - Cracking the Java Coding Interview ( 01:00)
🌐 Это должен сделать каждый программист — Егор Малькевич ( 00:50)

Хорошего дня!

@javatg
👍94🔥1
2025/09/18 16:19:05
Back to Top
HTML Embed Code: