Трюк с битовыми операциями
Этот код демонстрирует обмен значений двух переменных (a и b) без использования дополнительной временной переменной.
Он использует битовую операцию XOR (^). Ключевой момент здесь в том, что XOR двух одинаковых чисел возвращает 0, а XOR числа с 0 возвращает само это число. Таким образом, когда мы применяем XOR к a и b и затем обратно, мы фактически обмениваем их значения.
Этот код демонстрирует обмен значений двух переменных (a и b) без использования дополнительной временной переменной.
Он использует битовую операцию XOR (^). Ключевой момент здесь в том, что XOR двух одинаковых чисел возвращает 0, а XOR числа с 0 возвращает само это число. Таким образом, когда мы применяем XOR к a и b и затем обратно, мы фактически обмениваем их значения.
Array или ArrayList?
Выбор между Array и ArrayList зависит от специфики задачи Java, которую вы хотите решить. Запомните следующие особенности этих типов:
— Массив имеет фиксированный размер, и память для него выделяется во время объявления, а размер ArrayList может динамически меняться.
— Массивы Java работают намного быстрее, а в ArrayList намного проще добавлять и удалять элементы.
— При работе с Array скорее всего возникнет ошибка ArrayIndexOutOfBoundsException.
— ArrayList может быть только одномерным, когда массивы Java могут быть многомерными.
Выбор между Array и ArrayList зависит от специфики задачи Java, которую вы хотите решить. Запомните следующие особенности этих типов:
— Массив имеет фиксированный размер, и память для него выделяется во время объявления, а размер ArrayList может динамически меняться.
— Массивы Java работают намного быстрее, а в ArrayList намного проще добавлять и удалять элементы.
— При работе с Array скорее всего возникнет ошибка ArrayIndexOutOfBoundsException.
— ArrayList может быть только одномерным, когда массивы Java могут быть многомерными.
Есть ли смысл использовать лямбды в Java в целях оптимизации, или это только для улучшения читабельности кода?
Anonymous Quiz
40%
Только улучшение читабельности
38%
Есть смысл использовать всегда, так как это более оптимально
22%
Есть смысл использовать только в циклах вместо анонимных классов
Jackson
Jackson — это популярная библиотека Java для сериализации и десериализации объектов Java в различные текстовые форматы, такие как JSON, XML, YAML и CSV.
Jackson имеет простой и понятный API, что делает его доступным для начинающих разработчиков. Он работает очень быстро, что делает его идеальным выбором для высокопроизводительных приложений.
Jackson поддерживает широкий спектр функций и возможностей, что позволяет настроить его под ваши конкретные нужды. А также его можно расширить с помощью модулей для поддержки дополнительных форматов данных и функций.
Jackson — это популярная библиотека Java для сериализации и десериализации объектов Java в различные текстовые форматы, такие как JSON, XML, YAML и CSV.
Jackson имеет простой и понятный API, что делает его доступным для начинающих разработчиков. Он работает очень быстро, что делает его идеальным выбором для высокопроизводительных приложений.
Jackson поддерживает широкий спектр функций и возможностей, что позволяет настроить его под ваши конкретные нужды. А также его можно расширить с помощью модулей для поддержки дополнительных форматов данных и функций.
Задача с LeetCode (Minimum Path Sum)
Дана двумерная матрица M x N, заполненная неотрицательными числами. Необходимо найти путь из левого верхнего угла в правый нижний, который будет иметь наименьшую сумму чисел на своем пути. Двигаться при этом можно только вниз и вправо.
Для решения воспользуемся динамическим программированием:
⏺️ Первые два цикла for обновляют значения в первой строке и первом столбце, добавляя значения ячеек сверху и слева соответственно.
⏺️ Последний цикл for обновляет остальные значения внутри массива grid, выбирая минимальное значение из верхней и левой ячейки и добавляя его к текущей ячейке.
⏺️ Конечный результат возвращается из последней ячейки массива grid.
Дана двумерная матрица M x N, заполненная неотрицательными числами. Необходимо найти путь из левого верхнего угла в правый нижний, который будет иметь наименьшую сумму чисел на своем пути. Двигаться при этом можно только вниз и вправо.
Для решения воспользуемся динамическим программированием:
⏺️ Первые два цикла for обновляют значения в первой строке и первом столбце, добавляя значения ячеек сверху и слева соответственно.
⏺️ Последний цикл for обновляет остальные значения внутри массива grid, выбирая минимальное значение из верхней и левой ячейки и добавляя его к текущей ячейке.
⏺️ Конечный результат возвращается из последней ячейки массива grid.
Какая из следующих баз данных не поддерживается jdbcTemplate?
Anonymous Quiz
4%
MySql
5%
PostgresSql
80%
NoSql
10%
Oracle
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
☕ Хеш-таблицы в Java: секреты производительности
Посмотрим на проблемы, которые возникают при имплементации хеш-таблицы, когда сложность добавления или удаления из нее не O(1), а линейная, и какие потенциальные атаки можно провести на эту структуру данных (и как их избегают в современных языках программирования на примере Java).
🔗Читать статью
Посмотрим на проблемы, которые возникают при имплементации хеш-таблицы, когда сложность добавления или удаления из нее не O(1), а линейная, и какие потенциальные атаки можно провести на эту структуру данных (и как их избегают в современных языках программирования на примере Java).
🔗Читать статью
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
-35% на полугодовой курс по алгоритмам!
🌟 Алгоритмы и структуры данных🌟
23 390 рублей35 990 рублей до 1 апреля
Курс для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.
🔥 Переходите и активируйте вводные занятия курса — https://proglib.io/w/5a72cc41
Вас ждут:
– 150 практических заданий и 47 видеолекций
– бессрочный доступ к обучению
– поддержка преподавателя в чате
А также очень харизматичный спикер из Яндекса 🙌🏻
🌟 Алгоритмы и структуры данных🌟
23 390 рублей
Курс для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.
🔥 Переходите и активируйте вводные занятия курса — https://proglib.io/w/5a72cc41
Вас ждут:
– 150 практических заданий и 47 видеолекций
– бессрочный доступ к обучению
– поддержка преподавателя в чате
А также очень харизматичный спикер из Яндекса 🙌🏻
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
☕ Плавный переход с Java 11 на Java 21: пошаговое руководство для разработчиков
Наше пошаговое руководство поможет вам осуществить плавную миграцию вашего проекта с Java 11 на Java 21, избегая подводных камней и извлекая максимум пользы из новых возможностей.
Читать статью
#гайд
Наше пошаговое руководство поможет вам осуществить плавную миграцию вашего проекта с Java 11 на Java 21, избегая подводных камней и извлекая максимум пользы из новых возможностей.
Читать статью
#гайд
В чем заключается особенность работы метода clone() с полями объекта типа ссылки?
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
Что выведет код сверху?
Anonymous Quiz
33%
0
12%
null
49%
Compiler error
6%
Ничего из вышеперечисленного
Что из нижеперечисленного является в Java ключевым словом?
Anonymous Quiz
30%
goto
19%
array
28%
null
23%
true
⚡️Proglib запускает каналы про нейросети
По каждому направлению отдельно! А именно:
⭐Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
⭐Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
⭐Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
⭐Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей
И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.
Подписывайтесь!
По каждому направлению отдельно! А именно:
⭐Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
⭐Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
⭐Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
⭐Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей
И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.
Подписывайтесь!
Какой из этих методов возвращает описание исключения?
Anonymous Quiz
61%
getMessage()
27%
getException()
5%
obtainDescription()
7%
obtainException()