seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

Microservices | Вопросы с Собеседований

- Подборка вопросов по микросервисной архитектуре с реальных собеседований

- Авторские статьи по архитектуре, проектированию, базам данных

- Автор - Lead Developer с 8 лет опыта на Java/Kotlin

Читать полностью…

Senior Java Developer

abstract

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

Это позволяет упростить проектирование классов и повторно использовать код.

#для_продвинутых

Читать полностью…

Senior Java Developer

Сортировка слиянием (Merge Sort)

Сортировка слиянием - это алгоритм сортировки, который основан на разделении массива на меньшие части, сортировке каждой части и объединении этих частей в отсортированный массив. Он имеет сложность O(n log n) и может быть эффективно использован для сортировки больших наборов данных.

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

#для_продвинутых

Читать полностью…

Senior Java Developer

Интерфейс Predicate

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

#для_продвинутых

Читать полностью…

Senior Java Developer

Конечный автомат

Конечный автомат (Finite State Machine, FSM) — это модель вычислений, которая состоит из набора состояний, переходов между состояниями и действий, выполняемых при переходе из одного состояния в другое.

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

#для_продвинутых

Читать полностью…

Senior Java Developer

Comparator

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

В этом примере MyComparator реализует интерфейс Comparator для целых чисел (Integer) и сортирует список чисел в обратном порядке.

Вы можете также использовать анонимные классы или лямбда-выражения для создания компараторов более компактным способом.

#для_начинающих

Читать полностью…

Senior Java Developer

Отвлекись от серьезных тем, заходи к нам и наслаждайся смешными мемами и гифками про беспощадную борьбу между программистами и кодом!

@nophumor

Читать полностью…

Senior Java Developer

Большие числа BigInteger

В Java для работы с большими числами (такими, которые не умещаются в примитивные типы данных) используется класс BigInteger из пакета java.math. Этот класс позволяет производить арифметические операции с большими числами, которые могут содержать до 2^31-1 битов.

#для_начинающих

Читать полностью…

Senior Java Developer

Шифр Цезаря

Шифр Цезаря — это простой шифр подстановки, который сдвигает каждую букву в сообщении на фиксированное количество позиций в алфавите.

В этом примере мы создали класс CaesarCipher, который содержит два метода: encrypt и decrypt. encrypt принимает сообщение и сдвиг, чтобы зашифровать его, а decrypt принимает зашифрованное сообщение и сдвиг, чтобы дешифровать его.

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

#для_начинающих

Читать полностью…

Senior Java Developer

Интерфейс UnaryOperator

Интерфейс UnaryOperator — это функциональный интерфейс, введенный в Java 8 в пакете java.util.function. Этот интерфейс представляет собой оператор, который принимает один аргумент и возвращает результат того же типа, что и входной аргумент. Он представляет унарную операцию, то есть операцию, которая применяется к одному операнду.

#для_продвинутых

Читать полностью…

Senior Java Developer

Крепкий фундамент дома не выстоит за зыбучем песке. Качественное приложение сложно создать без продуманной архитектуры.

Случалось ли вам исправлять один баг, после чего возникало ещё 5? Или перестать понимать, что происходит в коде, который вы же написали?

Так бывает, когда приложению не хватает архитектуры.

А если она есть?

С таким приложением проще и приятнее работать. Его легче расширять, изменять, тестировать, отлаживать и понимать. У вас самих (и ваших коллег) будет уходить куда меньше времени на исправление ошибок.

И именно этому учат в Слёрм на курсе по архитектуре приложений — он стартует 22 января.

Узнать программу вы можете по ссылке.

Спикеры курса:

✔️Егор Лукьянов, Senior software engineer
Более 15 лет в IT, отвечает за архитектуру платформы анализа больших данных. Руководит бэкенд-разработкой на Python.

✔️Александр Вагнер, Solution Architect & co-founder в TorrowTechnologies
Более 8 лет в IT, строит с нуля компанию и платформу Torrow. Имеет богатый опыт создания и разработки high-load веб-сервисов и приложений.

Курс будет проходить в формате потока: эксперты будут отвечать на вопросы студентов, проводить встречи с подробным разбором сложных заданий.

Записаться на поток вы можете на сайте Слёрм

Реклама. ООО «Слёрм» г. Лиски, ОГРН 1193668020545 Erid: 2VtzqvLGFTR

Читать полностью…

Senior Java Developer

Служба Безупречных Помощников Деда Мороза расскажет, почему она такая быстрая

🌐 Онлайн-митап
🗓 19 декабря в 17:00 (МСК, GMT+3)

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

Разработчики СБП расскажут, как в СБП обеспечивается скорость, надежность и отказоустойчивость и почему им пришлось ускорять транзакционные отчеты в несколько тысяч раз. А еще, в чем особая магия платежных ссылок — фундамента множества сценариев оплаты.

Авторы лучших вопросов к докладам получат подарки от организаторов — наборы мерча Мир Plat.Form.

Подробности и регистрация по ссылке.

Реклама. АО "НСПК". ИНН 7706812159

Читать полностью…

Senior Java Developer

Класс Properties

Класс Properties — это подкласс Hashtable. Он используется для хранения списков значений, в которых ключ является String, а значение также является String.

Класс Properties используется множеством других классов. Например, это тип объекта, возвращаемый System.getProperties(), когда тот получает внешние значения.

Properties определяет следующие переменную экземпляра. Эта переменная содержит список свойств по умолчанию, связанный с объектом Properties.

Следующая программа показывает несколько методов, поддерживаемых этой структурой данных.

Методы и классы, объявленные Properties, можно посмотреть здесь.

#для_продвинутых

Читать полностью…

Senior Java Developer

Класс Stack

Класс Stack является подклассом класса Vector. Стек является линейной структурой данных, где элементы добавляются и удаляются в соответствии с принципом «последним вошел, первым вышел» (LIFO — Last-In, First-Out).

В Java, класс Stack был часто использован в более ранних версиях для работы со стеками, но в более современных версиях рекомендуется использовать класс Deque (Double-ended queue) из пакета java.util. Deque предоставляет методы для работы как со стеком, так и с очередью.

#для_продвинутых

Читать полностью…

Senior Java Developer

Gradle

Это инструмент автоматизации сборки, который в основном используется в Android-разработке. Популярная альтернатива Ant и Maven.

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

#для_начинающих

Читать полностью…

Senior Java Developer

FileWriter

FileWriter — это класс в Java, который позволяет записывать символы в файл. Он наследует класс OutputStreamWriter и реализует интерфейс Closeable, Flushable и Appendable.

Конструктор FileWriter имеет две формы:

1. FileWriter (File file) - создает объект FileWriter, который будет записывать в указанный файл.

2. FileWriter (String fileName) - создает объект FileWriter, который будет записывать в файл с указанным именем.

#для_продвинутых

Читать полностью…

Senior Java Developer

Юнит-тестирование в Java

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

#для_продвинутых

Читать полностью…

Senior Java Developer

Сервлеты

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

Сервлет получает запрос от браузера, обрабатывает его и отправляет ответ в браузер.

#для_продвинутых

Читать полностью…

Senior Java Developer

Инвертированный индекс

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

Ниже приведен пример простой реализации инвертированного индекса на языке Java. Этот пример демонстрирует создание инвертированного индекса для небольшой коллекции документов.

#для_продвинутых

Читать полностью…

Senior Java Developer

Bit Set

BitSet — это класс, предназначенный для работы с наборами битов. Он предоставляет удобные методы для установки, сброса, получения и манипулирования битами в наборе. Этот класс полезен, когда вам нужно хранить и обрабатывать большое количество булевых значений (true/false) или флагов, используя минимальное количество памяти.

#для_начинающих

Читать полностью…

Senior Java Developer

Тип Optional

Тип Optional используется для представления возможности отсутствия значения. Он обертывает другой тип данных и может содержать либо значение этого типа, либо быть пустым (null).

Этот код создает Optional объект, который может содержать строку. Если строка доступна, она будет возвращена; в противном случае будет возвращено значение "Default Value".

Использование Optional способствует более чистому и безопасному коду при работе с возможно отсутствующими значениями.

#для_начинающих

Читать полностью…

Senior Java Developer

Класс LinkedList

Класс LinkedList представляет собой двусвязный список, который является одной из структур данных для хранения и управления коллекцией элементов. LinkedList предоставляет реализацию интерфейсов List и Deque, что означает, что он может использоваться как список элементов и как двусторонняя очередь (двунаправленный список).

#для_начинающих

Читать полностью…

Senior Java Developer

erid: LjN8KYeQe

💪 Создайте полноценный чат на JavaScript с нуля

👉 И доведите проект до совершенства на бесплатном практическом уроке
«Работа с сетевыми ресурсами в проектах на Javascript» от OTUS.

Мы возьмем проект с предыдущего урока и:
- доработаем его до полноценного чата, чтобы пользователи с разных компьютеров могли общаться друг с другом;
- обсудим, какие варианты реализации общения с сервером у нас есть и попробуем их на практике.

📌 Занятие пройдёт 21 декабря в 20:00 мск в рамках курса «Специализация Fullstack developer». После урока вы сможете продолжить обучение в рассрочку. 

👉  Для бесплатного участия и получения записи предыдущего урока с созданием проекта регистрируйтесь прямо сейчас: https://otus.pw/DXwE/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Senior Java Developer

Hibernate ORM

Hibernate ORM - это фреймворк для работы с базами данных, который позволяет разработчикам работать с объектами вместо запросов SQL. Hibernate позволяет ускорить процесс разработки и уменьшить количество кода, необходимого для работы с базой данных.

В этом примере мы создаем класс Student, который аннотируется с помощью аннотаций Hibernate, указывающих, что данный класс является сущностью, а его поля соответствуют столбцам в таблице базы данных. Затем мы создаем объект SessionFactory и используем его для сохранения и получения объекта Student из базы данных.

#для_начинающих

Читать полностью…

Senior Java Developer

Метод replaceFirst()

Метод replaceFirst() в Java используется для замены первого подстроки в строке на другую подстроку. Этот метод является частью класса java.lang.String и принимает два параметра: регулярное выражение (регулярное выражение) и замену.

Сигнатура метода:

public String replaceFirst(String regex, String replacement)

Где:
regex — это регулярное выражение, которое вы ищете в строке.
replacement — строка, которой вы заменяете первое найденное совпадение с regex.

#для_начинающих

Читать полностью…

Senior Java Developer

Callable

Callable — это интерфейс из пакета java.util.concurrent, который представляет собой задачу, которую можно выполнить и получить результат, а также обработать исключение, если оно произошло во время выполнения задачи. Он аналогичен интерфейсу Runnable, но в отличие от Runnable, Callable может возвращать результат выполнения и бросать проверяемые исключения.

#для_продвинутых

Читать полностью…

Senior Java Developer

Как вызвать один конструктор из другого?

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

В приведенном выше примере конструктор по умолчанию вызывает конструктор с параметром, передавая ему значение 0.

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

#для_начинающих

Читать полностью…

Senior Java Developer

ХОЧЕШЬ ПОВЫШЕНИЕ В 2024 ГОДУ? 😎🔥

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

🚀 Курс ведет действующий архитектор Кирилл Ветчинкин. Он успешно реализовал проекты для Мегафона, Теле2, ВСS Brокer. Постоянный спикер крупных IT-конференций.

Какие скиллы прокачаем:
📌 Декомпозиция систем на микросервисы, отталкиваясь от бизнес-домена.
📌 Встройка микросервисов в оргструктуру компании.
📌Организация перехода от монолитной системы к микросервисной.
Полная программа ТУТ 👉https://microarch.ru/?utm_source=posev&utm_medium=erid%2VtzqwzHJsM&utm_campaign=4

А самое главное — поддержка от спикера, чат с одногруппниками и полезные созвоны с разбором домашки.

📕 Сертификат об участии по итогам прохождения курса.

Узнай больше о курсе 👉 https://microarch.ru/?utm_source=posev&utm_medium=erid%2VtzqwzHJsM&utm_campaign=4

Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqwzHJsM

Читать полностью…

Senior Java Developer

Почему от кандидатов на Middle и Senior-должности в крупных IT-компаниях требуют знания алгоритмов?

Расскажем на открытом уроке Теория графов.

С Евгением Волосатовым – профессиональным программистом, преподавателем языка Java и автором курсов по C#, Java и PHP подробно разберём теорию графов и ее составляющие, а также сделаем обзор первой половины программы курса «Алгоритмы и структуры данных».

🔥 Вебинар подойдет бэкенд-разработчикам на любых языках программирования начального и среднего уровня и системным программистам. Доступно обучение в рассрочку.

💻 Занятие пройдёт 26 декабря в 20:00 мск.

🌐 Для бесплатного участия и получения записи пройдите короткое тестирование прямо сейчас: https://otus.pw/nQoW/?erid=LjN8K44Vn

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Senior Java Developer

Когда использовать рефлексии?

Уверен многих кто только начал учить ReflectionAPI удивили возможности этого инструмента. Но работа с ним довольно тяжёлая для системы, поэтому лучше использовать её в крайних случаях.

К примеру — обработка класса с аннотациями (пример выше). Извлекая аннотации из объектов класса, можно обрабатывать её каким угодно образом.

Также рефлексии часто применяют в тестировке, а именно для приватных полей и методов. Достаточно получить метод из класса, задать method.isAccessible(true) и можно вызывать его как публичный.

#для_начинающих

Читать полностью…
Subscribe to a channel