Проверь насколько хорошо ты знаешь Java и готов освоить Spring!
Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥3😁3
Локально размещенное веб-приложение, позволяющее выполнять различные операции с файлами PDF.
Язык: Java
💥Stars: 7900
📝Forks: 521
https://github.com/Frooodle/Stirling-PDF
Язык: Java
💥Stars: 7900
📝Forks: 521
https://github.com/Frooodle/Stirling-PDF
GitHub
GitHub - Stirling-Tools/Stirling-PDF: #1 Locally hosted web application that allows you to perform various operations on PDF files
#1 Locally hosted web application that allows you to perform various operations on PDF files - Stirling-Tools/Stirling-PDF
👍15❤3🎅1
Получить все необходимые навыки до уровня Middle на комплексном онлайн-курсе «Специализация Java-разработчик» от OTUS.
После обучения вы сможете:
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3☃1🎉1
Microservices | Вопросы с Собеседований
- Подборка вопросов по микросервисной архитектуре с реальных собеседований
- Авторские статьи по архитектуре, проектированию, базам данных
- Автор - Lead Developer с 8 лет опыта на Java/Kotlin
- Подборка вопросов по микросервисной архитектуре с реальных собеседований
- Авторские статьи по архитектуре, проектированию, базам данных
- Автор - Lead Developer с 8 лет опыта на Java/Kotlin
🔥15👍7❤3😁1
Мониторинг состояния сервисов является важной составляющей процесса сопровождения программного обеспечения. В этом ролике автор демонстрирует, как при помощи Spring Boot Actuator и Micrometer можно экспортировать метрики в VictoriaMetrics, а затем визуализировать их в Grafana. Кроме этого автор рассматривает несколько простых примеров написания собственных метрик.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Actuator, Micrometer, Victoria Metrics, Grafana - Мониторинг Spring Boot #micrometer #springboot
Мониторинг состояния сервисов является важной составляющей процесса сопровождения программного обеспечения. В этом ролике я демонстрирую, как при помощи Spring Boot Actuator и Micrometer можно экспортировать метрики в VictoriaMetrics, а затем визуализировать…
👍23🔥7❤5🎄3🎉1
Дорогие друзья! Поздравлю всех с праздником — Новым годом! Пусть задуманное обязательно сбудется, пусть работа приносит только пользу и хорошее настроение, пусть спутники будут верными, коллеги — отзывчивыми, а счастье льется через край! Новый год — прекрасное время для новых достижений, перемен и переосмысления всех планов! Так пусть все сбывается наилучшим образом! Ура! 🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥45🍾17🎄11👍7❤6
System.nanoTime
System.nanoTime() возвращает текущее время в наносекундах.
Этот метод используется для измерения продолжительности выполнения небольших фрагментов кода.
В отличие от System.currentTimeMillis(), который возвращает время в миллисекундах, nanoTime() имеет более высокое разрешение и позволяет измерять очень короткие промежутки времени.
nanoTime() часто используется для:
— Замеров производительности.
— Измерения задержек в мультитрединге.
— Микробенчмаркинга.
— Определения интервалов между событиями в реальном времени.
System.nanoTime() возвращает текущее время в наносекундах.
Этот метод используется для измерения продолжительности выполнения небольших фрагментов кода.
В отличие от System.currentTimeMillis(), который возвращает время в миллисекундах, nanoTime() имеет более высокое разрешение и позволяет измерять очень короткие промежутки времени.
nanoTime() часто используется для:
— Замеров производительности.
— Измерения задержек в мультитрединге.
— Микробенчмаркинга.
— Определения интервалов между событиями в реальном времени.
🔥18👍11❤3
Practical Spring LDAP: Using Enterprise Java-Based LDAP in Spring Data and Spring Framework 6, Second Edition (2024) PDF
This revised edition is your practical, hands-on guide to developing Java-based enterprise applications with big data or batches of data using the Spring LDAP and the Spring Data LDAP frameworks. The book covers these popular Spring project modules and explains the purpose and fundamental concepts of LDAP before giving a comprehensive tour of the latest version of Spring LDAP and Spring Data LDAP as found in Spring Framework 6.
The book provides a detailed treatment of LDAP controls and the new features of Spring LDAP such as Object Directory Mapping and LDIF parsing. LDAP has become the de facto standard for storing and accessing information in enterprises. Despite its widespread adoption, developers often struggle when it comes to using this technology effectively.
This revised edition is your practical, hands-on guide to developing Java-based enterprise applications with big data or batches of data using the Spring LDAP and the Spring Data LDAP frameworks. The book covers these popular Spring project modules and explains the purpose and fundamental concepts of LDAP before giving a comprehensive tour of the latest version of Spring LDAP and Spring Data LDAP as found in Spring Framework 6.
The book provides a detailed treatment of LDAP controls and the new features of Spring LDAP such as Object Directory Mapping and LDIF parsing. LDAP has become the de facto standard for storing and accessing information in enterprises. Despite its widespread adoption, developers often struggle when it comes to using this technology effectively.
👍7🔥3❤2
Развивайте алгоритмическое мышление, чтобы претендовать на Middle и Senior-должности в крупных IT-компаниях
Проверьте свой уровень компетенций и узнайте насколько вы соответствуете требованиям рынка: https://otus.pw/VR6p/
Сможете ответить на 20 вопросов за 30 минут, получите скидку на курс «Алгоритмы и структуры данных» от OTUS.
Проверьте свой уровень компетенций и узнайте насколько вы соответствуете требованиям рынка: https://otus.pw/VR6p/
Сможете ответить на 20 вопросов за 30 минут, получите скидку на курс «Алгоритмы и структуры данных» от OTUS.
👍6❤2🔥2🎅2😁1
Метод trimToSize()
Метод trimToSize() используется для оптимизации размера внутреннего массива коллекций, таких как ArrayList или HashMap.
Этот метод позволяет уменьшить размер внутреннего массива коллекции до текущего количества элементов, то есть избавиться от неиспользуемой памяти.
Вызывать этот метод имеет смысл после массового удаления элементов из коллекции, чтобы освободить лишнюю память.
При добавлении новых элементов размер массива автоматически увеличится.
Метод trimToSize() является необязательной оптимизацией производительности и памяти. Его можно не вызывать, в этом случае внутренний массив будет занимать максимальный размер.
Метод trimToSize() используется для оптимизации размера внутреннего массива коллекций, таких как ArrayList или HashMap.
Этот метод позволяет уменьшить размер внутреннего массива коллекции до текущего количества элементов, то есть избавиться от неиспользуемой памяти.
Вызывать этот метод имеет смысл после массового удаления элементов из коллекции, чтобы освободить лишнюю память.
При добавлении новых элементов размер массива автоматически увеличится.
Метод trimToSize() является необязательной оптимизацией производительности и памяти. Его можно не вызывать, в этом случае внутренний массив будет занимать максимальный размер.
👍43🔥8❤4
StringBuffer
StringBuffer — это класс, предназначенный для работы со строками. Он позволяет создавать модифицируемые (изменяемые) строки.
В отличие от класса String, объекты StringBuffer можно изменять после их создания, используя различные методы, такие как append(), insert(), delete().
Также StringBuffer эффективнее String при частых изменениях строки, так как не создает новый объект при каждом изменении.
Класс является потокобезопасным, т. е. может использоваться в многопоточных приложениях.
Методы StringBuffer не синхронизированы, поэтому для многопоточного доступа нужно вручную синхронизировать доступ с помощью synchronized блока.
StringBuffer — это класс, предназначенный для работы со строками. Он позволяет создавать модифицируемые (изменяемые) строки.
В отличие от класса String, объекты StringBuffer можно изменять после их создания, используя различные методы, такие как append(), insert(), delete().
Также StringBuffer эффективнее String при частых изменениях строки, так как не создает новый объект при каждом изменении.
Класс является потокобезопасным, т. е. может использоваться в многопоточных приложениях.
Методы StringBuffer не синхронизированы, поэтому для многопоточного доступа нужно вручную синхронизировать доступ с помощью synchronized блока.
👍33❤5🔥4😁3☃1
Расскажем на бесплатном открытом уроке «Разбираемся с АОП в Spring» от OTUS.
На вебинаре разберём:
✔️ что такое аспекты;
✔️ как ими пользоваться и как они работают в Spring;
✔️ почему это важно для понимания работы самого фреймворка.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥2🎉1
Конвертируем массив в список
Arrays.asList() — это статический метод класса Arrays, который позволяет конвертировать обычный массив в список List.
— Принимает массив в качестве аргумента и возвращает объект типа List с элементами этого массива.
— Возвращаемый список имеет фиксированный размер, равный длине исходного массива. Добавлять/удалять элементы в него нельзя.
— Изменения в возвращаемом списке будут вноситься в исходный массив, т. к. список работает как «представление» массива. Метод работает для массивов примитивных и ссылочных типов.
Arrays.asList хорош для чтения элементов массива, но не для записи из-за неизменяемого размера.
Arrays.asList() — это статический метод класса Arrays, который позволяет конвертировать обычный массив в список List.
— Принимает массив в качестве аргумента и возвращает объект типа List с элементами этого массива.
— Возвращаемый список имеет фиксированный размер, равный длине исходного массива. Добавлять/удалять элементы в него нельзя.
— Изменения в возвращаемом списке будут вноситься в исходный массив, т. к. список работает как «представление» массива. Метод работает для массивов примитивных и ссылочных типов.
Arrays.asList хорош для чтения элементов массива, но не для записи из-за неизменяемого размера.
👍25❤4🔥2🤩2
Какие знания отличают востребованного программиста?
Расскажет Евгений Волосатов – профессиональный программист, преподаватель языка Java и автор курсов по C#, Java и PHP.
Встречаемся на бесплатном практическом уроке «Алгоритм Дейкстры», где мы:
✅ рассмотрим самый оптимальный алгоритм поиска кратчайшего пути во взвешенном графе;
✅ покажем, как он работает «на пальцах»;
✅ запрограммируем и продемонстрируем его работу на языке;
✅ сделаем обзор второй половины программы курса «Алгоритмы и структуры данных».
После урока вы сможете продолжить обучение на курсе в рассрочку на специальных условиях.
Занятие пройдёт 17 января в 20:00 мск. Для бесплатного участия регистрируйтесь прямо сейчас: https://otus.pw/NVlh6/
Расскажет Евгений Волосатов – профессиональный программист, преподаватель языка Java и автор курсов по C#, Java и PHP.
Встречаемся на бесплатном практическом уроке «Алгоритм Дейкстры», где мы:
✅ рассмотрим самый оптимальный алгоритм поиска кратчайшего пути во взвешенном графе;
✅ покажем, как он работает «на пальцах»;
✅ запрограммируем и продемонстрируем его работу на языке;
✅ сделаем обзор второй половины программы курса «Алгоритмы и структуры данных».
После урока вы сможете продолжить обучение на курсе в рассрочку на специальных условиях.
Занятие пройдёт 17 января в 20:00 мск. Для бесплатного участия регистрируйтесь прямо сейчас: https://otus.pw/NVlh6/
👍8❤3🔥2🎅2
Структуры данных и алгоритмы в Java (2013) PDF
Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы - это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике усвоить полученные знания.
Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы - это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике усвоить полученные знания.
🔥22👍7
Возможно ли при переопределении метода изменить: модификатор доступа, возвращаемый тип, тип аргумента или их количество, имена аргументов или их порядок; убирать, добавлять, изменять порядок следования элементов секции throws?
При переопределении метода сужать модификатор доступа не разрешается, т.к. это приведёт к нарушению принципа подстановки Барбары Лисков. Расширение уровня доступа возможно.
Можно изменять все, что не мешает компилятору понять какой метод родительского класса имеется в виду:
• Изменять тип возвращаемого значения при переопределении метода разрешено только в сторону сужения типа (вместо родительского класса - наследника).
• При изменении типа, количества, порядка следования аргументов вместо переопределения будет происходить
• Секцию throws метода можно не указывать, но стоит помнить, что она остаётся действительной, если уже определена у метода родительского класса. Так же, возможно добавлять новые исключения, являющиеся наследниками от уже объявленных или исключения
При переопределении метода сужать модификатор доступа не разрешается, т.к. это приведёт к нарушению принципа подстановки Барбары Лисков. Расширение уровня доступа возможно.
Можно изменять все, что не мешает компилятору понять какой метод родительского класса имеется в виду:
• Изменять тип возвращаемого значения при переопределении метода разрешено только в сторону сужения типа (вместо родительского класса - наследника).
• При изменении типа, количества, порядка следования аргументов вместо переопределения будет происходить
overloading
(перегрузка) метода.• Секцию throws метода можно не указывать, но стоит помнить, что она остаётся действительной, если уже определена у метода родительского класса. Так же, возможно добавлять новые исключения, являющиеся наследниками от уже объявленных или исключения
RuntimeException
. Порядок следования таких элементов при переопределении значения не имеет.👍23🔥3❤2
Как получить доступ к переопределенным методам родительского класса?
С помощью ключевого слова
С помощью ключевого слова
super
мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private
.super.method();
👍28❤1🔥1
🔥Есть очень эффективный инструмент для создания тестов на Java
Освойте его на бесплатном практическом уроке «Пишем тесты на Java с помощью Cucumber Framework» от OTUS. На вебинаре:- познакомимся с библиотекой Cucumber;- научимся писать тесты с помощью нее;- ответим на все возникающие вопросы.
⏰Занятие пройдёт 17 января в 20:00 мск и будет приурочено к старту курса «Java QA Engineer. Professional». Доступна рассрочка на обучение!
💪Пройдите короткое тестирование прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.ru/lessons/java-qa-pro/?utm_source=telegram&utm_medium=cpc&utm_campaign=jqa&utm_term=javalib&utm_content=lesson-17-01-2024#event-3820
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KMFFi
Освойте его на бесплатном практическом уроке «Пишем тесты на Java с помощью Cucumber Framework» от OTUS. На вебинаре:- познакомимся с библиотекой Cucumber;- научимся писать тесты с помощью нее;- ответим на все возникающие вопросы.
⏰Занятие пройдёт 17 января в 20:00 мск и будет приурочено к старту курса «Java QA Engineer. Professional». Доступна рассрочка на обучение!
💪Пройдите короткое тестирование прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.ru/lessons/java-qa-pro/?utm_source=telegram&utm_medium=cpc&utm_campaign=jqa&utm_term=javalib&utm_content=lesson-17-01-2024#event-3820
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KMFFi
👍6❤3
Как разделить строку на части?
В Java можно разделить строку на части с помощью метода split() класса String. Метод split() разбивает исходную строку на массив строк, используя заданный разделитель.
В этом примере исходная строка «Это пример строки для разделения» разбивается на части с помощью пробела в качестве разделителя. Однако, если у вас есть другой разделитель (например, запятая или точка с запятой), просто замените значение переменной delimiter на соответствующий разделитель в вашем случае.
В Java можно разделить строку на части с помощью метода split() класса String. Метод split() разбивает исходную строку на массив строк, используя заданный разделитель.
В этом примере исходная строка «Это пример строки для разделения» разбивается на части с помощью пробела в качестве разделителя. Однако, если у вас есть другой разделитель (например, запятая или точка с запятой), просто замените значение переменной delimiter на соответствующий разделитель в вашем случае.
❤15👍9🔥1