Forwarded from Библиотека Java разработчика
Под каким типом хранить период времени?
В стандартной библиотеке современных версий Java для этих целей есть два класса:
Duration – длительность времени. Количество наносекунд, секунд, минут, часов, и тоже дней. Здесь один день – ровно 24 часа.
Оба класса реализуют общий интерфейс
Экземпляры обоих классов могут быть созданы из значений отдельных компонентов, из двух моментов времени методом between, или из строки. Строковое представление Duration: "
До Java 8 основным способом хранения периода были числовые примитивы. В этом подходе есть много недостатков, среди которых в первую очередь неограниченность значений и ненаглядность. Чтобы в Java 8+ получить период числом, используется метод
👉@BookJava
В стандартной библиотеке современных версий Java для этих целей есть два класса:
Period
– календарный период. Количество дней, месяцев и лет. Одним днем здесь считается день в терминах ZonedDateTime
.Duration – длительность времени. Количество наносекунд, секунд, минут, часов, и тоже дней. Здесь один день – ровно 24 часа.
Оба класса реализуют общий интерфейс
TemporalAmount
– период времени вообще. Оба иммутабельны, и как следствие, потокобезопасны. Любая модифицирующая операция вроде plusX()
возвращает новый экземпляр с измененным значением.Экземпляры обоих классов могут быть созданы из значений отдельных компонентов, из двух моментов времени методом between, или из строки. Строковое представление Duration: "
P2DT3H4M
", Period: "P1Y2M3D
".До Java 8 основным способом хранения периода были числовые примитивы. В этом подходе есть много недостатков, среди которых в первую очередь неограниченность значений и ненаглядность. Чтобы в Java 8+ получить период числом, используется метод
between()
нужного элемента енама ChronoUnit
.👉@BookJava
👍3
Learning Spring Boot 3.0: Simplify the development of production-grade applications using Java and Spring, 3rd Edition
Автор: Greg L. Turnquist (2022)
Это третье издание бестселлера начинается с помощи в создании простого приложения, а затем показывает, как защитить, протестировать, собрать и развернуть его в производство. Далее вы познакомитесь с возможностью "нативного" перехода и выпуска с использованием GraalVM. По мере продвижения вы будете изучать реактивное программирование и пробовать масштабируемые веб-контроллеры и операции с данными. Книга подробно рассказывает о нативных образах и развертывании GraalVM, учит вас, как обеспечить безопасность приложения с помощью правил, основанных как на маршрутах, так и на методах, и позволяет применить полученные уроки к любой проблеме. Если вы хотите получить глубокое понимание создания надежных приложений с использованием основных функций Spring Boot, то эта книга для вас.
Скачать
👉 @java_360
Автор: Greg L. Turnquist (2022)
Это третье издание бестселлера начинается с помощи в создании простого приложения, а затем показывает, как защитить, протестировать, собрать и развернуть его в производство. Далее вы познакомитесь с возможностью "нативного" перехода и выпуска с использованием GraalVM. По мере продвижения вы будете изучать реактивное программирование и пробовать масштабируемые веб-контроллеры и операции с данными. Книга подробно рассказывает о нативных образах и развертывании GraalVM, учит вас, как обеспечить безопасность приложения с помощью правил, основанных как на маршрутах, так и на методах, и позволяет применить полученные уроки к любой проблеме. Если вы хотите получить глубокое понимание создания надежных приложений с использованием основных функций Spring Boot, то эта книга для вас.
Скачать
👉 @java_360
👍3
Привет! На связи организатор IT-конференций по разным направлениям разработки Podlodka Crew.
♨️ Приглашаем посетить третий сезон Podlodka Java Crew. Окунёмся в масштабную и важную для каждого Java-разработчика тему «Работа с базой данных» и рассмотрим её со всех возможных сторон. Ведь какой бэкенд без SQL?
В этом сезоне вас ждёт много дискуссий, мнений и нетворкинга. В программе не только технические доклады, но ещё и два публичных собеседования, воркшопы и круглый стол:
🔸 Поговорим про паттерны обработки данных - стриминг, батчи, cdc;
🔸 Узнаем, как не наступить на грабли сочетая Debezium с Postgres;
🔸 Разберёмся в тонкостях CRUD-сервисов: Spring, Jooq, PostgreSQL, Liquibase, Testcontainers
🔸 Сравним использование NoSQL и SQL баз данных на конкретных примерах.
🤓 А ещё в программе — традиционный бар на тему «Интеграция через базу — не антипаттерн» — обсудим и поделимся опытом.
🤑 Для ранних пташек — низкие цены! Посмотреть программу и купить билет со скидкой можно на сайте: https://podlodka.io/javacrew
♨️ Приглашаем посетить третий сезон Podlodka Java Crew. Окунёмся в масштабную и важную для каждого Java-разработчика тему «Работа с базой данных» и рассмотрим её со всех возможных сторон. Ведь какой бэкенд без SQL?
В этом сезоне вас ждёт много дискуссий, мнений и нетворкинга. В программе не только технические доклады, но ещё и два публичных собеседования, воркшопы и круглый стол:
🔸 Поговорим про паттерны обработки данных - стриминг, батчи, cdc;
🔸 Узнаем, как не наступить на грабли сочетая Debezium с Postgres;
🔸 Разберёмся в тонкостях CRUD-сервисов: Spring, Jooq, PostgreSQL, Liquibase, Testcontainers
🔸 Сравним использование NoSQL и SQL баз данных на конкретных примерах.
🤓 А ещё в программе — традиционный бар на тему «Интеграция через базу — не антипаттерн» — обсудим и поделимся опытом.
🤑 Для ранних пташек — низкие цены! Посмотреть программу и купить билет со скидкой можно на сайте: https://podlodka.io/javacrew
A Functional Approach to Java: Augmenting Object-Oriented Java Code with Functional Principles
Автор: Ben Weidig (2023)
Разработчики Java обычно решают сложные задачи разработки программного обеспечения с помощью объектно-ориентированного программирования (ООП). Однако не все проблемы подходят для ООП. Парадигма функционального программирования (ФП) предлагает другой подход к решению проблем, а Java предоставляет такие простые в освоении инструменты ФП, как лямбды и потоки. Если вы заинтересованы в применении концепций ФП в своем Java-коде, то эта книга для вас.
Автор освещает различные аспекты функционального программирования и показывает, как включить их в свой код, не переходя на "полную функциональность". Вы узнаете, как, когда и зачем использовать такие концепции ФП, как неизменяемость и чистые функции, для написания более лаконичного, разумного и перспективного кода.
Скачать
👉 @java_360
Автор: Ben Weidig (2023)
Разработчики Java обычно решают сложные задачи разработки программного обеспечения с помощью объектно-ориентированного программирования (ООП). Однако не все проблемы подходят для ООП. Парадигма функционального программирования (ФП) предлагает другой подход к решению проблем, а Java предоставляет такие простые в освоении инструменты ФП, как лямбды и потоки. Если вы заинтересованы в применении концепций ФП в своем Java-коде, то эта книга для вас.
Автор освещает различные аспекты функционального программирования и показывает, как включить их в свой код, не переходя на "полную функциональность". Вы узнаете, как, когда и зачем использовать такие концепции ФП, как неизменяемость и чистые функции, для написания более лаконичного, разумного и перспективного кода.
Скачать
👉 @java_360
👍1
Designing Applications for Google Cloud Platform: Create and Deploy Applications Using Java
Автор: Ashutosh Shashi (2023)
Вы начнете с введения в службы GCP и обзора того, что предлагает Java при разработке приложений для GCP. Далее вам расскажут о том, как настроить Google App Engine, Google Storage Cloud и Google Cloud SQL с примерами использования, а также о разработке и развертывании приложений. По ходу книги вы познакомитесь с расширенными службами GCP, развертыванием и масштабированием приложений на службах GCP, а также с устранением неполадок и оптимизацией Java-приложений на GCP. В книге используются реальные примеры, чтобы помочь вам понять, как службы GCP могут решать повседневные проблемы.
Скачать
👉 @java_360
Автор: Ashutosh Shashi (2023)
Вы начнете с введения в службы GCP и обзора того, что предлагает Java при разработке приложений для GCP. Далее вам расскажут о том, как настроить Google App Engine, Google Storage Cloud и Google Cloud SQL с примерами использования, а также о разработке и развертывании приложений. По ходу книги вы познакомитесь с расширенными службами GCP, развертыванием и масштабированием приложений на службах GCP, а также с устранением неполадок и оптимизацией Java-приложений на GCP. В книге используются реальные примеры, чтобы помочь вам понять, как службы GCP могут решать повседневные проблемы.
Скачать
👉 @java_360
👍2
Forwarded from Библиотека Java разработчика
Отличаются ли сокращенные и обычные операторы?
Java предлагает программисту сокращенную запись для применения операции с сохранением ответа в операнд. Это например
У таких сокращений есть одно неочевидное отличие от полных версий. Если прочитать спецификацию, там сказано, что
Незнание этой особенности может привести к ошибочно успешной компиляции, и неожиданным результатам работы кода.
👉@BookJava
Java предлагает программисту сокращенную запись для применения операции с сохранением ответа в операнд. Это например
+=
, &=
, и другие. Их правильное название – операторы сложного присваивания (compound assignment). Сокращенные версии есть для всех арифметических и битовых операторов.У таких сокращений есть одно неочевидное отличие от полных версий. Если прочитать спецификацию, там сказано, что
x += y
– это на самом деле сокращение от x = (XType)(x + y)
. То есть, кроме самой операции происходит приведение результата к типу левого операнда.Незнание этой особенности может привести к ошибочно успешной компиляции, и неожиданным результатам работы кода.
👉@BookJava
👍3
12992683-dzone-refcard318-java13.pdf
1 MB
Подборка шпаргалок по Java
Основы синтаксиса;
Особенности Java;
Горячие клавиши в IntelliJ IDEA;
Лаконичное руководство по основам языка.
👉 @java_360
Основы синтаксиса;
Особенности Java;
Горячие клавиши в IntelliJ IDEA;
Лаконичное руководство по основам языка.
👉 @java_360
👍5
Introduction to Java Through Game Development: Learn Java Programming Skills by Working with Video Games
Автор: Victor G Brusca (2022)
Хотите научиться программировать на Java? Давайте признаем, что лучший способ научиться программировать - это писать программы. Это может быть пугающим предложением, когда над головой висит призрак многочасовых примеров простых программ командной строки. Не бойтесь! Теперь вы можете научиться программировать на Java в увлекательной форме, работая над видеоиграми.
В этой книге вы сможете поработать с тремя игровыми проектами на Java и получить доступ к полному коду каждого проекта, включая полный игровой движок Java.
Скачать
👉 @java_360
Автор: Victor G Brusca (2022)
Хотите научиться программировать на Java? Давайте признаем, что лучший способ научиться программировать - это писать программы. Это может быть пугающим предложением, когда над головой висит призрак многочасовых примеров простых программ командной строки. Не бойтесь! Теперь вы можете научиться программировать на Java в увлекательной форме, работая над видеоиграми.
В этой книге вы сможете поработать с тремя игровыми проектами на Java и получить доступ к полному коду каждого проекта, включая полный игровой движок Java.
Скачать
👉 @java_360
👍2
Объектно-ориентированное программирование в Java
О. И. Гуськова PDF (2018)
Учебное пособие посвящено объектно-ориентированному программированию на языке Java. Рассматриваются основные принципы объектно-ориентированного программирования, средства работы со структурами данных – коллекции и дженерики, принципы объектно-ориентированного дизайна.
Скачать
👉 @java_360
О. И. Гуськова PDF (2018)
Учебное пособие посвящено объектно-ориентированному программированию на языке Java. Рассматриваются основные принципы объектно-ориентированного программирования, средства работы со структурами данных – коллекции и дженерики, принципы объектно-ориентированного дизайна.
Скачать
👉 @java_360
👍1
🚀 Изучай Symfony Framework для работы над масштабными PHP-проектами!
Записывайся на продвинутый онлайн-курс Symfony Framework от Отус (старт 21 ноября 2023 года) и получи возможность:
✅ развивать идеи Java Spring в PHP-экосистеме
✅ участвовать в создании enterprise-проектов со сложной бизнес-логикой
✅ претендовать на высокооплачиваемые вакансии middle+
Ответь на вопросы вступительного теста за 30 минут и проверь, насколько ты готов к освоению Symfony Framework: https://clck.ru/36929a
Записывайся на продвинутый онлайн-курс Symfony Framework от Отус (старт 21 ноября 2023 года) и получи возможность:
✅ развивать идеи Java Spring в PHP-экосистеме
✅ участвовать в создании enterprise-проектов со сложной бизнес-логикой
✅ претендовать на высокооплачиваемые вакансии middle+
Ответь на вопросы вступительного теста за 30 минут и проверь, насколько ты готов к освоению Symfony Framework: https://clck.ru/36929a
Алгоритмы и структуры данных. Извлечение информации на языке Java
Аллен Б. Доуни (2018)
Изучите, как следует реализовывать эффективные алгоритмы на основе важнейших структур данных на языке Java, а также как измерять производительность этих алгоритмов. Каждая глава сопровождается упражнениями, помогающими закрепить материал.
• Научитесь работать со структурами данных, например, со списками и словарями, разберитесь, как они работают
• Напишите приложение, которое читает страницы Википедии, выполняет синтаксический разбор и обеспечивает навигацию по полученному дереву данных
• Анализируйте код и учитесь прогнозировать, как быстро он будет работать и сколько памяти при этом потреблять
• Пишите классы, реализующие интерфейс Map, пользуйтесь при этом хеш-таблицей и двоичным деревом поиска
• Создайте простой веб-поисковик с собственным поисковым роботом: он будет индексировать веб-страницы, сохранять их содержимое и возвращать нужные результаты
Скачать
👉 @java_360
Аллен Б. Доуни (2018)
Изучите, как следует реализовывать эффективные алгоритмы на основе важнейших структур данных на языке Java, а также как измерять производительность этих алгоритмов. Каждая глава сопровождается упражнениями, помогающими закрепить материал.
• Научитесь работать со структурами данных, например, со списками и словарями, разберитесь, как они работают
• Напишите приложение, которое читает страницы Википедии, выполняет синтаксический разбор и обеспечивает навигацию по полученному дереву данных
• Анализируйте код и учитесь прогнозировать, как быстро он будет работать и сколько памяти при этом потреблять
• Пишите классы, реализующие интерфейс Map, пользуйтесь при этом хеш-таблицей и двоичным деревом поиска
• Создайте простой веб-поисковик с собственным поисковым роботом: он будет индексировать веб-страницы, сохранять их содержимое и возвращать нужные результаты
Скачать
👉 @java_360
👍2
Forwarded from Библиотека Java разработчика
Я хотел сломать Java и я это сделал
На написание этой статьи, меня натолкнул разбор результата изменения полей объекта, лежащего в HashSet. Я развил идею и привнёс альтернативную математику в Java.
Ломаем
В Java существуют примитивные типы и их объектные версии. Для оптимизации JVM заранее создаёт и кеширует Boolean, Byte, Short и часть диапазона Integer, чтобы вместо создания нового объекта использовать существующий в кеше.
Взглянем на Integer.java
https://habr.com/ru/articles/767114/
👉@BookJava
На написание этой статьи, меня натолкнул разбор результата изменения полей объекта, лежащего в HashSet. Я развил идею и привнёс альтернативную математику в Java.
Ломаем
В Java существуют примитивные типы и их объектные версии. Для оптимизации JVM заранее создаёт и кеширует Boolean, Byte, Short и часть диапазона Integer, чтобы вместо создания нового объекта использовать существующий в кеше.
Взглянем на Integer.java
public final class Integer extends Number
implements Comparable<Integer>, Constable, ConstantDesc {
private final int value;
@IntrinsicCandidate
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
}
https://habr.com/ru/articles/767114/
👉@BookJava
👍2❤1
Легкий способ выучить Java
Брайсон Пейн (2020)
Хотите выучить Java без головной боли и быстро? Тогда эта книга для вас! В ней нет длинных описаний и долгой вводной части — практически с первых страниц вы приступите к разработке настоящих функционирующих программ, потому что учиться на примерах гораздо эффективнее и быстрее! Автор книги, Брайсон Пэйн — профессор информатики с 20-летним стажем преподавания, автор нескольких бестселлеров-самоучителей по программированию и лектор курса «Практический этичный хакинг» на портале Udemy. Его курсы прошли свыше 20 000 учащихся из более чем 150 стран. Теперь и вы можете проверить на собственном опыте, насколько метод Пэйна эффективен!
Скачать
👉 @java_360
Брайсон Пейн (2020)
Хотите выучить Java без головной боли и быстро? Тогда эта книга для вас! В ней нет длинных описаний и долгой вводной части — практически с первых страниц вы приступите к разработке настоящих функционирующих программ, потому что учиться на примерах гораздо эффективнее и быстрее! Автор книги, Брайсон Пэйн — профессор информатики с 20-летним стажем преподавания, автор нескольких бестселлеров-самоучителей по программированию и лектор курса «Практический этичный хакинг» на портале Udemy. Его курсы прошли свыше 20 000 учащихся из более чем 150 стран. Теперь и вы можете проверить на собственном опыте, насколько метод Пэйна эффективен!
Скачать
👉 @java_360
👍5
Classic Computer Science Problems in Java
By David Kopec (2020)
Столкнулись с "неразрешимой" проблемой при разработке программного обеспечения? Скорее всего, кто-то уже справился с этой задачей, и вы можете не ломать голову. Дэвид Копец собрал наиболее полезные готовые решения, принципы и алгоритмы. "Классические задачи Computer Science на языке Java" - это мастер-класс по программированию, содержащий 55 практических примеров, затрагивающих самые актуальные темы: базовые алгоритмы, ограничения, искусственный интеллект и многое другое.
В этой книге:
- Рекурсия, мемоизация и битовые манипуляции.
- Поисковые, графовые и генетические алгоритмы.
- Проблемы ограничений.
- Кластеризация методом k-среднего, нейронные сети и состязательный поиск.
Скачать
👉 @java_360
By David Kopec (2020)
Столкнулись с "неразрешимой" проблемой при разработке программного обеспечения? Скорее всего, кто-то уже справился с этой задачей, и вы можете не ломать голову. Дэвид Копец собрал наиболее полезные готовые решения, принципы и алгоритмы. "Классические задачи Computer Science на языке Java" - это мастер-класс по программированию, содержащий 55 практических примеров, затрагивающих самые актуальные темы: базовые алгоритмы, ограничения, искусственный интеллект и многое другое.
В этой книге:
- Рекурсия, мемоизация и битовые манипуляции.
- Поисковые, графовые и генетические алгоритмы.
- Проблемы ограничений.
- Кластеризация методом k-среднего, нейронные сети и состязательный поиск.
Скачать
👉 @java_360
👍1
Java: быстрый старт
Чан Джейми (2021)
Всегда хотели научиться программировать на Java, но не знаете, с чего начать? Или хотите быстро перейти с другого языка на Java? Уже перепробовали множество книг и курсов, но ничего не подходит? Серия «Быстрый старт» — отличное решение, и вот почему: сложные понятия разбиты на простые шаги — вы сможете освоить язык Java, даже если никогда раньше не занимались программированием; все фундаментальные концепции подкреплены реальными примерами; вы получите полное представление о Java: концепции объектно-ориентированного программирования, средства обработки ошибок, работа с файлами, лямбда-выражения и т. д.; в конце книги вас ждет интересный проект, который поможет усвоить полученные знания.
Скачать
👉 @java_360
Чан Джейми (2021)
Всегда хотели научиться программировать на Java, но не знаете, с чего начать? Или хотите быстро перейти с другого языка на Java? Уже перепробовали множество книг и курсов, но ничего не подходит? Серия «Быстрый старт» — отличное решение, и вот почему: сложные понятия разбиты на простые шаги — вы сможете освоить язык Java, даже если никогда раньше не занимались программированием; все фундаментальные концепции подкреплены реальными примерами; вы получите полное представление о Java: концепции объектно-ориентированного программирования, средства обработки ошибок, работа с файлами, лямбда-выражения и т. д.; в конце книги вас ждет интересный проект, который поможет усвоить полученные знания.
Скачать
👉 @java_360
👍6