Shallow-Copy-vs-Deep-Copy-1-2 (1).gif
2.7 MB
🔹 Поверхностное копирование:
Создается новая переменная, которая ссылается на тот же объект в памяти, что и оригинал. Это означает, что любые изменения в копии будут отражаться и на исходном объекте.
Используется:
▪️ Когда объект содержит только примитивные типы данных.
▪️ Когда две ссылки на один объект запланированы или допустимы.
🔹 Глубокое копирование:
Создается полностью независимый дубликат объекта, включая все вложенные структуры. Это гарантирует, что изменения в копии никак не повлияют на оригинальный объект.
Используется:
▪️ Когда объекты содержат вложенные объекты или массивы.
▪️ Когда вам нужна полная независимость между копиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
Сложные (и многочисленные) операции в базе данных требуют солидного объема оперативной памяти — например, для создания набора результатов PostgreSQL обычно приходится:
🔹 Выполнить поиск по индексу.
🔹 Извлечь связанные строки из одной или нескольких таблиц.
🔹 Объединить, отфильтровать, агрегировать и отсортировать кортежи в пригодный для использования результат.
Каждый из этих шагов требует памяти, и PostgreSQL может обрабатывать тысячи таких запросов одновременно. Так что рано или поздно перед разработчиками любого серьезного проекта встает необходимость решения нескольких сложных вопросов:
🔹 Как грамотно оптимизировать использование доступной памяти?
🔹 В каком соотношении распределить ОЗУ между несколькими типами памяти, которые необходимы PostgreSQL для эффективной работы?
🔹 Как предотвратить защитное завершение операционной системой процесса PostgreSQL, который использует слишком много памяти?
Для ответов на все эти вопросы нужно определить, сколько именно памяти использует PostgreSQL для основных процессов — а это сама по себе нетривиальная задача. Советы по настройке памяти так многочисленны и разнообразны, что в них сложно сориентироваться.
Поэтому в этой статье мы сведем всю мудрость экспертов к конкретным шагам, которые помогут максимально эффективно распорядиться доступной памятью.
🔗 Читать статью
🔗 Зеркало
Сложные (и многочисленные) операции в базе данных требуют солидного объема оперативной памяти — например, для создания набора результатов PostgreSQL обычно приходится:
🔹 Выполнить поиск по индексу.
🔹 Извлечь связанные строки из одной или нескольких таблиц.
🔹 Объединить, отфильтровать, агрегировать и отсортировать кортежи в пригодный для использования результат.
Каждый из этих шагов требует памяти, и PostgreSQL может обрабатывать тысячи таких запросов одновременно. Так что рано или поздно перед разработчиками любого серьезного проекта встает необходимость решения нескольких сложных вопросов:
🔹 Как грамотно оптимизировать использование доступной памяти?
🔹 В каком соотношении распределить ОЗУ между несколькими типами памяти, которые необходимы PostgreSQL для эффективной работы?
🔹 Как предотвратить защитное завершение операционной системой процесса PostgreSQL, который использует слишком много памяти?
Для ответов на все эти вопросы нужно определить, сколько именно памяти использует PostgreSQL для основных процессов — а это сама по себе нетривиальная задача. Советы по настройке памяти так многочисленны и разнообразны, что в них сложно сориентироваться.
Поэтому в этой статье мы сведем всю мудрость экспертов к конкретным шагам, которые помогут максимально эффективно распорядиться доступной памятью.
🔗 Читать статью
🔗 Зеркало
Свежий #дайджест по Java
👩💻 Запускаем таски по расписанию — статья рассказывает о том, как команда Яндекс Телемоста решила проблему с запуском тасков с высокой частотой, обеспечивая отказоустойчивость и эффективность системы.
👩💻 Почему стоит перейти с JUnit4 на JUnit5 — статья на Хабре раскрывает, почему команда разработчиков из Сбера решила перейти с JUnit4 на JUnit5, детализируя ключевые улучшения, такие как модульная архитектура и новые аннотации, которые значительно упрощают и ускоряют процесс тестирования.
👩💻 Простые коммуникации в Java-приложении — статья описывает, как разработать простую систему коммуникации в Java-приложении, используя платформу Jmix, чтобы упростить взаимодействие между пользователями, включая создание интерактивных веб-приложений без глубокого знания фронтенда.
👩💻 Создание микросервисов на Java с Dropwizard — статья объясняет, как создавать микросервисы на Java с помощью фреймворка Dropwizard, включая настройку, реализацию CRUD-операций и тестирование.
Please open Telegram to view this post
VIEW IN TELEGRAM
1715316072490 (1).gif
260.5 KB
🔹 Атомарность (Atomicity)
Гарантирует, что транзакция не будет зафиксирована частично. Все записи в транзакции выполняются одновременно и не могут быть разбиты на меньшие части. Если при выполнении транзакции возникают ошибки, все записи откатываются.
🔹 Согласованность (Consistency)
Любые данные, записанные в ходе транзакции, должны быть валидны в соответствии со всеми определёнными правилами и поддерживать базу данных в корректном состоянии.
🔹 Изоляция (Isolation)
Параллельные транзакции не должны оказывать влияния друг на друга. Изолированность сложно достижима, поэтому существуют различные уровни изоляции.
🔹 Надежность (Durability)
Данные сохраняются после завершения транзакции, даже в случае сбоя системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Что выведет код сверху?
Ответ:Not equal. Переменная real не равна самой себе. Арифметика с плавающей запятой реализована в соответствии со стандартом IEEE 754, который требует возвращения специального значения «NaN» (от английского «Not a Number» — не число), когда ноль делится на ноль. В спецификации также указано, что NaN не равно никакому значению с плавающей запятой, включая само себя.
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
Что делает аннотация @Transactional в Spring?
Anonymous Quiz
17%
Определяет транзакцию на уровне базы данных для всех методов
8%
Создает транзакцию на уровне пользовательского интерфейса
72%
Управляет транзакциями на уровне метода или класса
4%
Управляет сессией пользователя
#дайджест перед выходными
👩💻 Spring Boot 3.3: повышение производительности, безопасности и observability — Статья рассказывает о новых возможностях Spring Boot 3.3, включая улучшения производительности, безопасности и наблюдаемости. Обновление включает поддержку Class Data Sharing для быстрого запуска приложений, улучшенные настройки безопасности с JWT, поддержку Docker Compose и многое другое.
👩💻 Не используйте Lombok с JPA, пока не прочтете эту статью — Статья объясняет, почему использование библиотеки Lombok вместе с JPA может привести к различным проблемам, таким как некорректное сравнение сущностей, снижение производительности и даже ошибки выполнения. Автор делится конкретными примерами и рекомендациями, как правильно использовать Lombok с JPA, чтобы избежать этих проблем.
👩💻 Настройка почтового сервера Yandex spring boot — Статья подробно рассказывает, как настроить отправку электронной почты через Yandex с использованием Spring Boot. Автор описывает весь процесс — от создания пароля приложения до реализации класса для отправки писем.
👩💻 И опыт, сын ошибок трудных: обрабатываем ошибки в Spring Boot — Статья рассматривает способы обработки ошибок в Spring Boot, делая акцент на создании информативных ответов для пользовательских интерфейсов и интеграций. Автор делится своим опытом, подробно описывая различные подходы и инструменты, такие как исключения, аннотации и аспекты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, друзья! 👋
Мы готовим статью о том, что делать, если вы наврали в резюме, и нам нужна ваша помощь! 🤔 Поделитесь своим опытом и мнением, а самые интересные и полезные советы мы обязательно включим в нашу статью.
❓ Сталкивались ли вы когда-нибудь с ситуацией, когда пришлось преувеличить свои навыки в резюме? Как вы с этим справились?
❓ Какой, по вашему мнению, самый эффективный способ исправить ситуацию, если вы немного приукрасили свое резюме?
❓ Как вы думаете, какая «ложь» в резюме может быть простительной, а какая — абсолютно недопустимой?
Не стесняйтесь делиться своими историями и мнениями в комментариях! 💬 Ваш опыт может помочь другим избежать подобных ситуаций или найти выход, если они уже в них оказались. Спасибо за участие!
Мы готовим статью о том, что делать, если вы наврали в резюме, и нам нужна ваша помощь! 🤔 Поделитесь своим опытом и мнением, а самые интересные и полезные советы мы обязательно включим в нашу статью.
❓ Сталкивались ли вы когда-нибудь с ситуацией, когда пришлось преувеличить свои навыки в резюме? Как вы с этим справились?
❓ Какой, по вашему мнению, самый эффективный способ исправить ситуацию, если вы немного приукрасили свое резюме?
❓ Как вы думаете, какая «ложь» в резюме может быть простительной, а какая — абсолютно недопустимой?
Не стесняйтесь делиться своими историями и мнениями в комментариях! 💬 Ваш опыт может помочь другим избежать подобных ситуаций или найти выход, если они уже в них оказались. Спасибо за участие!
Статья подробно объясняет, как использовать CompletableFuture в Java для создания асинхронного и параллельного кода. В ней рассматриваются ключевые аспекты, такие как создание, объединение задач, обработка исключений и жизненный цикл CompletableFuture. Если собираетесь освоить передовые техники работы с асинхронными операциями в Java и значительно улучшить производительность своего кода, эта статья будет полезна.
Читать статью.
Please open Telegram to view this post
VIEW IN TELEGRAM
Concurrency Deep Dives
A Guide to CompletableFuture - Concurrency Deep Dives
An in-depth practical guide to Java's CompletableFuture, covering all its concepts. Also contains insights on how it works internally.
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
💪🛠️ Прокачай свой бэкенд: 9 инструментов, которые стоит знать
От браузерной ИИ-песочницы PostgreSQL до суперскоростного валидатора email — обзор новейших инструментов, которые упростят вашу работу и повысят продуктивность.
Читать статью
От браузерной ИИ-песочницы PostgreSQL до суперскоростного валидатора email — обзор новейших инструментов, которые упростят вашу работу и повысят продуктивность.
Читать статью
Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #javadevjob
Вакансии Java разработчиков уровня Junior
▪️Java developer
Самара. Тим — системный интегратор полного цикла
Подробнее
▪️Java-разработчик
Москва. Gridnine Systems — IT решения, повышающие эффективность бизнеса наших клиентов
Подробнее
Вакансии Java разработчиков уровня Middle
▪️Java разработчик
Москва. DIGINETICA — разработка сфере искусственного интеллекта
Подробнее
▪️Backend-разработчик
Екатеринбург. Русофт — разработка, системная интеграция, инфраструктурных решений
Подробнее
Вакансии Java разработчиков уровня Senior
▪️Java-разработчик
Санкт-Петербург. НПП ТЕЛДА — разработка индивидуальных бизнес-решений
Подробнее
▪️Java Developer
Удаленка. TIQUM — разработка и внедрение ПО
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии Java разработчиков уровня Junior
▪️Java developer
Самара. Тим — системный интегратор полного цикла
Подробнее
▪️Java-разработчик
Москва. Gridnine Systems — IT решения, повышающие эффективность бизнеса наших клиентов
Подробнее
Вакансии Java разработчиков уровня Middle
▪️Java разработчик
Москва. DIGINETICA — разработка сфере искусственного интеллекта
Подробнее
▪️Backend-разработчик
Екатеринбург. Русофт — разработка, системная интеграция, инфраструктурных решений
Подробнее
Вакансии Java разработчиков уровня Senior
▪️Java-разработчик
Санкт-Петербург. НПП ТЕЛДА — разработка индивидуальных бизнес-решений
Подробнее
▪️Java Developer
Удаленка. TIQUM — разработка и внедрение ПО
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
samara.hh.ru
Вакансия Junior Java developer в Самаре, работа в компании TEAMSCORE (вакансия в архиве c 29 августа 2024)
Зарплата: не указана. Самара. Требуемый опыт: не требуется. Полная занятость. Дата публикации: 26.08.2024.
Эта статья представляет 10 Java-библиотек, которые могут кардинально изменить ваш подход к программированию. Вы узнаете, как такие инструменты, как Lombok, Jackson и Apache Commons, могут существенно упростить ваш код, улучшить его производительность и сделать разработку более эффективной. Если вы хотите узнать, как сделать свой код чище и функциональнее, эта статья станет отличным гидом в мир передовых Java-библиотек.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Библиотека программиста
☕📦 10 Java-библиотек, которые изменят твой код навсегда
Из этой статьи вы узнаете о ключевых возможностях 10 популярных библиотек для Java: работа с коллекциями, строками, JSON, логами, датами и временем и многое другое.
Используете ли вы VPN?
Anonymous Poll
14%
Нет, мне лень
29%
Очень редко по особым случаям
40%
Регулярно
17%
Почти не выключаю/каждый день
🔍 Что такое ElasticSearch
ElasticSearch — это распределенная поисковая система с открытым исходным кодом, которая позволяет быстро и эффективно обрабатывать и анализировать большие объемы данных. Она идеально подходит для приложений, требующих гибкости в поиске и высокой скорости обработки запросов. Благодаря интеграции с Kibana и Logstash, ElasticSearch становится мощным инструментом для мониторинга и анализа данных в реальном времени.
📌 Use cases:
▪️ Мгновенный поиск по большим объемам данных
▪️ Гибкая схема индексации и поиска
▪️ Легкость в масштабировании и интеграции
ElasticSearch — это распределенная поисковая система с открытым исходным кодом, которая позволяет быстро и эффективно обрабатывать и анализировать большие объемы данных. Она идеально подходит для приложений, требующих гибкости в поиске и высокой скорости обработки запросов. Благодаря интеграции с Kibana и Logstash, ElasticSearch становится мощным инструментом для мониторинга и анализа данных в реальном времени.
▪️ Мгновенный поиск по большим объемам данных
▪️ Гибкая схема индексации и поиска
▪️ Легкость в масштабировании и интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
Укажите верный порядок дефолтных портов для программ: Tomcat, PostgreSQL, Redis, Kafka
Anonymous Quiz
5%
5432, 9092, 8080, 6379
9%
8080, 6379, 5432, 9092
3%
9092, 6379, 8080, 5432
82%
8080, 5432, 6379, 9092
2%
6379, 9092, 8080, 5432