🔍 Поиск в глубину
Это метод рекурсивного исследования всех вершин графа: начинаем с заданной стартовой вершины, сначала посещая как можно больше вершин вдоль каждой ветви, прежде чем вернуться.
Этот пример иллюстрирует обход в глубину для следующего графа:
0
/ \
1-----2
\
3
Начиная с вершины 2, алгоритм посетит вершины в следующем порядке: 2, 0, 1, 3.
#код
Это метод рекурсивного исследования всех вершин графа: начинаем с заданной стартовой вершины, сначала посещая как можно больше вершин вдоль каждой ветви, прежде чем вернуться.
Этот пример иллюстрирует обход в глубину для следующего графа:
0
/ \
1-----2
\
3
Начиная с вершины 2, алгоритм посетит вершины в следующем порядке: 2, 0, 1, 3.
#код
🐛🦋 Свитчеры после 30 лет: кто это, почему их не любят эйчары и как им найти работу в IT
Объясняем, как выжить тем, кто решил вкатиться в мир программирования после 30 лет.
🔗 Читать статью
🔗 Зеркало
Объясняем, как выжить тем, кто решил вкатиться в мир программирования после 30 лет.
🔗 Читать статью
🔗 Зеркало
Что не так с кодом?
Он не скомпилируется. Это вопрос на знание иерархии исключений: FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения, а в следующий блок catch управление передано не будет. Поэтому возникнет ошибка: exception FileNotFoundException has already been caught.
#вопросы_с_собеседований
Он не скомпилируется. Это вопрос на знание иерархии исключений: FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения, а в следующий блок catch управление передано не будет. Поэтому возникнет ошибка: exception FileNotFoundException has already been caught.
#вопросы_с_собеседований
Проверка на палиндром
Напишем небольшую программу, проверяющую является ли введенная строка палиндромом.
Перепишите код с картинки в файл с расширением .java, например, PalindromeChecker.java, затем скомпилируйте и запустите его с помощью команды javac PalindromeChecker.java, а затем java PalindromeChecker. Программа попросит вас ввести строку, и затем она выведет результат проверки на палиндром.
#код
Напишем небольшую программу, проверяющую является ли введенная строка палиндромом.
Перепишите код с картинки в файл с расширением .java, например, PalindromeChecker.java, затем скомпилируйте и запустите его с помощью команды javac PalindromeChecker.java, а затем java PalindromeChecker. Программа попросит вас ввести строку, и затем она выведет результат проверки на палиндром.
#код
Очередной #дайджест по Java:
✍️ Ракету пустил и забыл. Или как заставить DI работать
Рассматривается решение интересной задачи.
✍️ Поднимаем кластер PostgreSQL в Docker и Testcontainers
Такое решение помимо собственно отказоустойчивости позволяет частично решить проблему производительности, перераспределяя чтение данных с primary хоста на реплики.
✍️ Исчерпывающее руководство по одномерным массивам в Java
✍️ Список популярных утечек с GitHub: Анализ репозиториев компаний
Целью данного исследования было изучение файлов, которые компании могли случайно загрузить на GitHub, и выявление конфиденциальной информации, которая могла присутствовать в загруженных проектах.
✍️ Ракету пустил и забыл. Или как заставить DI работать
Рассматривается решение интересной задачи.
✍️ Поднимаем кластер PostgreSQL в Docker и Testcontainers
Такое решение помимо собственно отказоустойчивости позволяет частично решить проблему производительности, перераспределяя чтение данных с primary хоста на реплики.
✍️ Исчерпывающее руководство по одномерным массивам в Java
✍️ Список популярных утечек с GitHub: Анализ репозиториев компаний
Целью данного исследования было изучение файлов, которые компании могли случайно загрузить на GitHub, и выявление конфиденциальной информации, которая могла присутствовать в загруженных проектах.
Какое мероприятие по разработке вы посещали последним и будете ли на нем в следующий раз?
#интерактив
Кстати, на нашем сайте есть раздел с анонсами мероприятий по программированию.
#интерактив
Кстати, на нашем сайте есть раздел с анонсами мероприятий по программированию.
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
☕️Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника
💼Каналы с вакансиями
Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
☕️Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника
💼Каналы с вакансиями
Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Autoboxing
Autoboxing — это механизм, который автоматически преобразует примитивные типы данных в соответствующие классы-оболочки, и наоборот, без явного указания программистом. Этот механизм упрощает код и делает его более читаемым, так как позволяет использовать примитивные типы как объекты.
Autoboxing позволяет, например, использовать примитивные типы в коллекциях и других ситуациях, где требуются объекты. Ранее, до появления autoboxing, программистам приходилось явно выполнять преобразования между примитивными типами и их классами-оболочками.
#код
Autoboxing — это механизм, который автоматически преобразует примитивные типы данных в соответствующие классы-оболочки, и наоборот, без явного указания программистом. Этот механизм упрощает код и делает его более читаемым, так как позволяет использовать примитивные типы как объекты.
Autoboxing позволяет, например, использовать примитивные типы в коллекциях и других ситуациях, где требуются объекты. Ранее, до появления autoboxing, программистам приходилось явно выполнять преобразования между примитивными типами и их классами-оболочками.
#код
Что такое race-condition?
Race condition (гонка состояний) — это ситуация, которая возникает в многопоточных программах, когда несколько потоков одновременно пытаются изменить общий ресурс или переменную, приводя к непредсказуемому поведению программы. Это может произойти из-за неопределенности в том, какой поток будет выполняться в данный момент, и какие операции он совершит.
Также race condition может возникнуть, если несколько потоков пытаются изменить одну и ту же общую переменную без какой-либо синхронизации. Например, если два потока пытаются одновременно увеличить значение переменной, которое зависит от текущего значения, то результат может быть непредсказуемым.
Больше вопросов с собеседований в нашем канале.
#вопросы_с_собеседований
Race condition (гонка состояний) — это ситуация, которая возникает в многопоточных программах, когда несколько потоков одновременно пытаются изменить общий ресурс или переменную, приводя к непредсказуемому поведению программы. Это может произойти из-за неопределенности в том, какой поток будет выполняться в данный момент, и какие операции он совершит.
Также race condition может возникнуть, если несколько потоков пытаются изменить одну и ту же общую переменную без какой-либо синхронизации. Например, если два потока пытаются одновременно увеличить значение переменной, которое зависит от текущего значения, то результат может быть непредсказуемым.
Больше вопросов с собеседований в нашем канале.
#вопросы_с_собеседований
OutOfMemoryError
«OutOfMemoryError» ошибка в Java, указывающая на то, что приложению не хватило памяти для выполнения операции. Это может произойти, когда программа пытается выделить больше памяти, чем доступно в куче (heap), которая используется для хранения объектов и данных во время выполнения Java-приложения.
В результате JVM (Java Virtual Machine) больше не может выделить дополнительную память, и возникает ошибка «OutOfMemoryError».
#код
«OutOfMemoryError» ошибка в Java, указывающая на то, что приложению не хватило памяти для выполнения операции. Это может произойти, когда программа пытается выделить больше памяти, чем доступно в куче (heap), которая используется для хранения объектов и данных во время выполнения Java-приложения.
В результате JVM (Java Virtual Machine) больше не может выделить дополнительную память, и возникает ошибка «OutOfMemoryError».
#код
Какой сетап вы используете?
#интерактив
#интерактив
❗«Библиотека программиста» ищет девушек, работающих в IT — разработке, тестировании, информационной безопасности и других направлениях
Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.
Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.
Ссылка тут.
Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.
Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.
Ссылка тут.
Преобразуем строку в объект
Используем метод Class.forName(). Этот метод принимает параметр className, который является классом, для которого требуется его экземпляр.
#код
Используем метод Class.forName(). Этот метод принимает параметр className, который является классом, для которого требуется его экземпляр.
#код
Очередной #дайджест по Java:
☕️ Как задеплоить монолитный pet проект на Java с 0 и не сойти с ума…
Статья содержит шаги по развертыванию Java приложения с помощью GitHub Actions на серверах AWS EC2.
☕️ Авторизация в Spring Boot приложении с Spring Security 3.1.0 и PostgreSQL
Гайд для новичков.
☕️ Из кладовщика в разработчики
Автор рассказывает об опыте переквалификации от должности рабочего на складе до профессии backend-разработчика в международной компании на Кипре. Без рекламы курсов.
☕️ Приручаем Liquibase. Как скормить базе данных список из 10К офисов, чтобы потом не писать костыли?
Автор делится своим опытом создания миграций файлов с большим списком данных при помощи Liquibase.
☕️ Вопрос на сертификационном экзамене: применение Threads и Executors
Продолжение разбора вопросов из Java-сертификации от Учебного центра IBS.
☕️ Как задеплоить монолитный pet проект на Java с 0 и не сойти с ума…
Статья содержит шаги по развертыванию Java приложения с помощью GitHub Actions на серверах AWS EC2.
☕️ Авторизация в Spring Boot приложении с Spring Security 3.1.0 и PostgreSQL
Гайд для новичков.
☕️ Из кладовщика в разработчики
Автор рассказывает об опыте переквалификации от должности рабочего на складе до профессии backend-разработчика в международной компании на Кипре. Без рекламы курсов.
☕️ Приручаем Liquibase. Как скормить базе данных список из 10К офисов, чтобы потом не писать костыли?
Автор делится своим опытом создания миграций файлов с большим списком данных при помощи Liquibase.
☕️ Вопрос на сертификационном экзамене: применение Threads и Executors
Продолжение разбора вопросов из Java-сертификации от Учебного центра IBS.
Как преобразовать строку в Windows-1251?
В Java вы можете использовать классы Charset и String для преобразования строки из одной кодировки в другую. Пример на картинке выше.
Обратите внимание, что некоторые символы, которые существуют в кодировке Windows-1251, могут отсутствовать в кодировке UTF-16, поэтому процесс преобразования может вызвать потерю данных.
#код
В Java вы можете использовать классы Charset и String для преобразования строки из одной кодировки в другую. Пример на картинке выше.
Обратите внимание, что некоторые символы, которые существуют в кодировке Windows-1251, могут отсутствовать в кодировке UTF-16, поэтому процесс преобразования может вызвать потерю данных.
#код
Разница между загрузкой и инициализацией классов в Java на любопытном примере
TL;DR
☕️ загрузка класса не всегда сопровождается его проверкой и инициализацией
☕️ проверка байт-кода может вызвать загрузку класса
☕️ в некоторых случаях проверку байт-кода можно отключить для ускорения запуски приложения
Читать статью
TL;DR
☕️ загрузка класса не всегда сопровождается его проверкой и инициализацией
☕️ проверка байт-кода может вызвать загрузку класса
☕️ в некоторых случаях проверку байт-кода можно отключить для ускорения запуски приложения
Читать статью
Метод ordinal() в Enum
Метод ordinal() является частью класса Enum. Класс Enum используется для создания типов данных, представляющих ограниченное множество значений, таких как перечисления (enumerations). Метод ordinal() возвращает порядковый номер (индекс) конкретного элемента перечисления в объявленном порядке.
#код
Метод ordinal() является частью класса Enum. Класс Enum используется для создания типов данных, представляющих ограниченное множество значений, таких как перечисления (enumerations). Метод ordinal() возвращает порядковый номер (индекс) конкретного элемента перечисления в объявленном порядке.
#код
Предположим, есть метод, который может выбросить IOException и FileNotFoundException. В какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).
Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException:
void method() {
try {
//...
} catch (FileNotFoundException ex) {
//...
} catch (IOException ex) {
//...
}
}
#вопросы_с_собеседований
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).
Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException:
void method() {
try {
//...
} catch (FileNotFoundException ex) {
//...
} catch (IOException ex) {
//...
}
}
#вопросы_с_собеседований