Микросервисы Spring в действии (2022) True PDF
Spring существенно упрощает создание и развертывание микросервисов! Такие библиотеки, как Spring Boot, Spring Cloud и Spring Cloud Gateway, помогают уменьшить объем типового кода в службах REST. Они предоставляют эффективный набор инструментов для запуска микросервисов как в общедоступных, так и в частных облаках.
Книга учит создавать приложения на основе микросервисов с использованием Java и Spring. Начав с создания простых служб, вы постепенно перейдете к знакомству с приемами эффективного журналирования и мониторинга. Научитесь реструктурировать приложения на Java с помощью интуитивно понятных инструментов Spring и освоите управление API с помощью Spring Cloud Gateway. Также вы будете учиться развертывать приложения Spring Cloud в AWS и Kubernetes.
Издание предназначено для опытных разработчиков на Java и Spring.
Spring существенно упрощает создание и развертывание микросервисов! Такие библиотеки, как Spring Boot, Spring Cloud и Spring Cloud Gateway, помогают уменьшить объем типового кода в службах REST. Они предоставляют эффективный набор инструментов для запуска микросервисов как в общедоступных, так и в частных облаках.
Книга учит создавать приложения на основе микросервисов с использованием Java и Spring. Начав с создания простых служб, вы постепенно перейдете к знакомству с приемами эффективного журналирования и мониторинга. Научитесь реструктурировать приложения на Java с помощью интуитивно понятных инструментов Spring и освоите управление API с помощью Spring Cloud Gateway. Также вы будете учиться развертывать приложения Spring Cloud в AWS и Kubernetes.
Издание предназначено для опытных разработчиков на Java и Spring.
👍16❤10🔥5☃1
Оцените количество памяти на хранение одного примитива типа byte в ArrayList?
ArrayList основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому
ArrayList основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому
16 байт
тратится на хранение упакованного объекта и 4 байта
(8 для x64
) - на хранение ссылки на этот объект в самой структуре данных. Таким образом, в x32 JVM 4 байта
используются на хранение одного элемента и 16 байт
- на хранение упакованного объекта типа Byte
. Для x64
- 8 байт
и 24 байта
соответственно.👍20❤7🔥5☃2
☕️ Освойте Java с нуля на курсе «Профессия Java-разработчик» Станьте IT-специалистом, которому уже в начале карьеры готовы платить до 100 000 рублей в месяц.
Что вам даст этот курс?
✅ Изучите синтаксис Java и пройдёте основы объектно-ориентированного программирования.
✅ Узнаете, как работать с файловой системой, сетью и базами данных — познакомитесь с SQL.
✅ Научитесь вести контроль версий в Git.
✅ Создадите 2 мощных приложения для портфолио: разработаете поисковый движок и книжный интернет-магазин — аналог ЛитРес.
✅ Сможете начать работать уже через 4 месяца.
Узнать подробнее о курсе и получить специальную скидку можно здесь: https://epic.st/PE_s7H Оставьте заявку на курс сейчас и получите 3 месяца бесплатного обучения и год английского в подарок!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Что вам даст этот курс?
✅ Изучите синтаксис Java и пройдёте основы объектно-ориентированного программирования.
✅ Узнаете, как работать с файловой системой, сетью и базами данных — познакомитесь с SQL.
✅ Научитесь вести контроль версий в Git.
✅ Создадите 2 мощных приложения для портфолио: разработаете поисковый движок и книжный интернет-магазин — аналог ЛитРес.
✅ Сможете начать работать уже через 4 месяца.
Узнать подробнее о курсе и получить специальную скидку можно здесь: https://epic.st/PE_s7H Оставьте заявку на курс сейчас и получите 3 месяца бесплатного обучения и год английского в подарок!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👍11❤6☃2
Что выведет эта программа?
Ответ:
Программа напечатает “num1 == num2”. Если мы сравниваем две ссылки на объекты с помощью ==, значение всегда будет «false». Но в этом примере переменные num1 и num2 автоупаковываются (autoboxing) из-за Integer-кэширования. Вот почему num1 == num2 возвращает значение «true». Не забудьте, что Integer-кэширование актуально только для значений от -128 до 127.
Ответ:
👍65❤14🔥12
Для ArrayList или для LinkedList операция добавления элемента в середину (list.add(list.size()/2, newElement)) медленнее?
Для ArrayList:
• проверка массива на вместимость. Если вместимости недостаточно, то увеличение размера массива и копирование всех элементов в новый массив
• копирование всех элементов, расположенных правее от позиции вставки, на одну позицию вправо
• вставка элемента
Для LinkedList:
• поиск позиции вставки
• вставка элемента
В худшем случае вставка в середину списка эффективнее для
Для ArrayList:
• проверка массива на вместимость. Если вместимости недостаточно, то увеличение размера массива и копирование всех элементов в новый массив
(O(N))
;• копирование всех элементов, расположенных правее от позиции вставки, на одну позицию вправо
(O(N))
;• вставка элемента
(O(1))
.Для LinkedList:
• поиск позиции вставки
(O(N))
;• вставка элемента
(O(1))
.В худшем случае вставка в середину списка эффективнее для
LinkedList
. В остальных - скорее всего, для ArrayList
, поскольку копирование элементов осуществляется за счет вызова быстрого системного метода System.arraycopy()
.👍23❤9
Kotlin заходит в Telegram!
Рассказываем про Kotlin — молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке.
Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Советуем подписаться, чтобы узнавать больше!
Рассказываем про Kotlin — молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке.
Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Советуем подписаться, чтобы узнавать больше!
👍6😁4❤2🔥2
Объекты. Стильное ООП (2023) PDF
Хороший объектно-ориентированный код удобно читать, изменять и исправлять. Универсальные практики проектирования объектов, собранные в этой книге, позволят улучшить ваш стиль кодирования. Эти правила подойдут к любому объектно-ориентированному языку, они делают код максимально понятным и надежным, а также повышают производительность как индивидуальных разработчиков, так и команд. Книга «Объекты. Стильное ООП» познакомит вас с профессиональными техниками написания ОО-кода. Маттиас Нобак раскрывает правила создания объектов, определения методов, изменения и извлечения состояний и многое другое. Все примеры написаны на простом псевдокоде, который легко перевести в любой язык программирования. Кейс за кейсом вы изучите ключевые сценарии и задачи проектирования объектов, а затем шаг за шагом создадите простое веб-приложение, которое покажет, как должны взаимодействовать объекты разных типов.
Хороший объектно-ориентированный код удобно читать, изменять и исправлять. Универсальные практики проектирования объектов, собранные в этой книге, позволят улучшить ваш стиль кодирования. Эти правила подойдут к любому объектно-ориентированному языку, они делают код максимально понятным и надежным, а также повышают производительность как индивидуальных разработчиков, так и команд. Книга «Объекты. Стильное ООП» познакомит вас с профессиональными техниками написания ОО-кода. Маттиас Нобак раскрывает правила создания объектов, определения методов, изменения и извлечения состояний и многое другое. Все примеры написаны на простом псевдокоде, который легко перевести в любой язык программирования. Кейс за кейсом вы изучите ключевые сценарии и задачи проектирования объектов, а затем шаг за шагом создадите простое веб-приложение, которое покажет, как должны взаимодействовать объекты разных типов.
👍13❤5🔥1
В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?
Размер массива
Размер массива
elementData
представляет собой вместимость (capacity
) ArrayList
, которая всегда больше переменной size - реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.👍20🔥6
Напишите однопоточную программу, которая заставляет коллекцию выбросить ConcurrentModificationException.
Вопрос с подвохом: ConcurrentModificationException к многопоточности никакого отношения не имеет. Возникает эта штука тогда, когда мы пытаемся модифицировать коллекцию во время итерирования по ней.
Вопрос с подвохом: ConcurrentModificationException к многопоточности никакого отношения не имеет. Возникает эта штука тогда, когда мы пытаемся модифицировать коллекцию во время итерирования по ней.
👍28🔥4❤1
Introduction to Java Through Game Development: Learn Java Programming Skills by Working with Video Games (2023) PDF, ePUB
Interested in learning how to program with Java? Let’s face it, the best way to learn to program is by writing programs. This can be a daunting proposition with the specter of hours of simple command line example programs hanging over your head. Fear not! Now you can learn to program in Java in a fun way by working on video games.
With this book, you’ll get to work with three Java game projects and have access to the complete game code for each project, including a full Java game engine. After completing Introduction to Java through Game Development, you’ll be proficient in Java programming, having worked with the language’s fundamental aspects throughout the text, and will be ready to further your Java and game programming expertise with confidence.
Interested in learning how to program with Java? Let’s face it, the best way to learn to program is by writing programs. This can be a daunting proposition with the specter of hours of simple command line example programs hanging over your head. Fear not! Now you can learn to program in Java in a fun way by working on video games.
With this book, you’ll get to work with three Java game projects and have access to the complete game code for each project, including a full Java game engine. After completing Introduction to Java through Game Development, you’ll be proficient in Java programming, having worked with the language’s fundamental aspects throughout the text, and will be ready to further your Java and game programming expertise with confidence.
👍11❤1🔥1
LinkedList — это односвязный, двусвязный или четырехсвязный список?
Двусвязный: каждый элемент
Двусвязный: каждый элемент
LinkedList
хранит ссылку на предыдущий и следующий элементы.👍30😁5🔥1
Курс «Английский для разработчиков» Яндекс Практикума
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
👍7🔥2☃1
Apache Kafka. Потоковая обработка и анализ данных, 2-е издание (2023) PDF
При работе любого корпоративного приложения образуются данные: файлы журналов, показатели, информация об активности пользователей, исходящие сообщения и другие. Правильное управление этими данными не менее важно, чем сами данные. Если вы архитектор, разработчик или инженер-технолог, но вы пока не знакомы с Apache Kafka, то из этой обновленной книги вы узнаете, как работать с потоковой платформой Kafka, позволяющей обрабатывать потоки данных в реальном времени. Дополнительные главы посвящены API AdminClient от Kafka, транзакциям, новым функциям безопасности и изменениям в инструментарии. Инженеры из Confluent и LinkedIn, ответственные за разработку Kafka, объясняют, как с помощью этой платформы развертывать производственные кластеры Kafka, писать надежные управляемые событиями микросервисы и создавать масштабируемые приложения для потоковой обработки данных.
При работе любого корпоративного приложения образуются данные: файлы журналов, показатели, информация об активности пользователей, исходящие сообщения и другие. Правильное управление этими данными не менее важно, чем сами данные. Если вы архитектор, разработчик или инженер-технолог, но вы пока не знакомы с Apache Kafka, то из этой обновленной книги вы узнаете, как работать с потоковой платформой Kafka, позволяющей обрабатывать потоки данных в реальном времени. Дополнительные главы посвящены API AdminClient от Kafka, транзакциям, новым функциям безопасности и изменениям в инструментарии. Инженеры из Confluent и LinkedIn, ответственные за разработку Kafka, объясняют, как с помощью этой платформы развертывать производственные кластеры Kafka, писать надежные управляемые событиями микросервисы и создавать масштабируемые приложения для потоковой обработки данных.
👍16❤4🔥2
Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)?
Для этого в
Для этого в
LinkedList
есть обратный итератор, который можно получить вызва метод descendingIterator()
.👍26🔥5
Инкапсуляция
Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.
Для достижения инкапсуляции в Java:
☕️ Объявите переменные класса как private.
☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.
Преимущества инкапсуляции:
☕️ Поля класса можно сделать только для чтения или только для записи.
☕️ Класс может иметь полный контроль над тем, что хранится в его полях.
Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.
Для достижения инкапсуляции в Java:
☕️ Объявите переменные класса как private.
☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.
Преимущества инкапсуляции:
☕️ Поля класса можно сделать только для чтения или только для записи.
☕️ Класс может иметь полный контроль над тем, что хранится в его полях.
👍27❤9
В этом видео автор рассказывает о представлении в отрицательных чисел в компьютере на примере типа byte. Показывает, что можно получить, если забыть, что все целочисленные типы в языке программирования Java знаковые. В качестве практической части, пишет алгоритм для преобразования цветной фотографии в черно-белую.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Представление отрицательных чисел. Преобразование цветной фотографии в черно-белую.
В этом видео я рассказываю о представлении в отрицательных чисел в компьютере на примере типа byte. Показываю, что можно получить, если забыть, что все целочисленные типы в языке программирования Java знаковые. В качестве практической части, пишем алгоритм…
👍11🔥6❤5
Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?
Stack
был добавлен в Java 1.0
как реализация стека LIFO (last-in-first-out)
и является расширением коллекции Vector
, хотя это несколько нарушает понятие стека (например, класс Vector
предоставляет возможность обращаться к любому элементу по индексу). Является частично синхронизированной коллекцией (кроме метода добавления push()
) с вытекающими отсюда последствиями в виде негативного воздействия на производительность. После добавления в Java 1.6
интерфейса Deque
, рекомендуется использовать реализации именно этого интерфейса, например, ArrayDeque
.👍19❤6😁1
Кроме AspectJ-стиля Spring Framework предоставляет возможность настройки компонентов аспектно-ориентированного программирования в XML. В этом ролике автор продемонстрирует пример настройки при помощи XML точек среза, советов, введений и советников.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
XML-конфигурация АОП в Spring Framework
Кроме AspectJ-стиля Spring Framework предоставляет возможность настройки компонентов аспектно-ориентированного программирования в XML. В этом ролике я продемонстрирую пример настройки при помощи XML точек среза, советов, введений и советников.
#java #spring…
#java #spring…
👍7❤6
Java для чайников, 7-е издание (2019) PDF
Перед вами бестселлер для начинающих, посвященный Java 9 — новой версии самого мощного объектно-ориентированного языка программирования. Программа, написанная на Java, будет выполняться практически на любом компьютере, ноутбуке или портативном устройстве. Освоив Java, вы сможете создавать мультимедийные приложения, предназначенные для любой платформы. Независимо от того, на каком языке вы программировали раньше (и даже если вы никогда прежде не программировали), вы быстро научитесь создавать современные кроссплатформенные приложения, используя возможности Java 9.
Перед вами бестселлер для начинающих, посвященный Java 9 — новой версии самого мощного объектно-ориентированного языка программирования. Программа, написанная на Java, будет выполняться практически на любом компьютере, ноутбуке или портативном устройстве. Освоив Java, вы сможете создавать мультимедийные приложения, предназначенные для любой платформы. Независимо от того, на каком языке вы программировали раньше (и даже если вы никогда прежде не программировали), вы быстро научитесь создавать современные кроссплатформенные приложения, используя возможности Java 9.
👍16❤8🔥4😁2☃1
Современные информационные системы сложно представить себе без логгирования, ценность которого сложно перееоценить. В случае возникновения каких-то непредвиденных ситуаций лог или журнал событий будет первым и, возможно, главным источником информации, на основе которой вы сможете определить причины непредвиденного поведения или ошибок, а затем исправить их.
Для записи события в лог вы можете использовать System.out, System.err и PrintStream в целом, но лучше для этого использовать специализированные инструменты: логгеры и фасады логгирования, о которых пойдёт речь в этом обзорном ролике. При подготовке к этому ролику я постарался разобраться с подавляющим большинством современных инструментов логгирования для проектов на платформе Java и сформулировать какие-то выводы. Надеюсь, после просмотра этого ролика вам станет понятнее, что есть что в списе JUL, JCL, log4j, log4j 2, SLF4J и т.д., а так же, что стоит использовать, а что - нет.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Инструменты логгирования для платформы Java
Современные информационные системы сложно представить себе без логгирования, ценность которого сложно перееоценить. В случае возникновения каких-то непредвиденных ситуаций лог или журнал событий будет первым и, возможно, главным источником информации, на…
👍26🔥7