Java библиотека
31.6K subscribers
2.32K photos
77 videos
8 files
2.05K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Какие существуют виды тестовых объектов?

пустышка (dummy) - объект, который обычно передается в тестируемый класс в качестве параметра, но не имеет поведения: с ним ничего не происходит и никакие его методы не вызываются.

 dummy-объектов являются new object(), null, «Ignored String» и т.д.

фальшивка (fake object) применяется в основном для ускорения запуска ресурсоёмких тестов и является заменой тяжеловесного внешнего зависимого объекта его легковесной реализацией.

 примеры — эмулятор базы данных (fake database) или фальшивый web-сервис.

заглушка (test stub) используется для получения данных из внешней зависимости, подменяя её. При этом заглушка игнорирует все данные, поступающие из тестируемого объекта, возвращая заранее определённый результат.

 объект использует чтение из конфигурационного файла? Тогда передаем ему заглушку ConfigFileStub возвращающую тестовые строки конфигурации без обращения к файловой системе.

шпион (test spy) - разновидность заглушки, которая умеет протоколировать сделанные к ней обращения из тестируемой системы, чтобы проверить их правильность в конце теста. При этом фиксируется количество, состав и содержание параметров вызовов.

 существует необходимость проверки, что определённый метод тестируемого класса вызывался ровно 1 раз, то шпион - именно то, что нам нужно.

фикция (mock object) похож на шпиона, но обладает расширенной функциональностью, заранее заданными поведением и реакцией на вызовы.
👍215🔥3
Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!

👩‍💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.

👩‍💻 Kotlin Developer - самый топовый канал для котлин разработчика!

📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!

📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Динамический массив

В Java динамический массив представляет собой структуру данных, которая позволяет хранить и управлять коллекцией элементов переменного размера.

Он реализуется с помощью класса ArrayList. ArrayList представляет собой реализацию списка, который может изменять свой размер по мере необходимости.
👍24🔥4
Чем stub отличается от mock?

stub используется как заглушка сервисов, методов, классов и т.д. с заранее запрограммированным ответом на вызовы.

mock использует подмену результатов вызова, проверяет сам факт взаимодействия, протоколирует и контролирует его.
👍23🔥6
🧐Устали от ошибок? Позаботьтесь о чистоте архитектуры!

👉Узнайте как на бесплатном вебинаре онлайн-курса «Clojure Developer» — «Duct и Clean Architecture в Clojure»: регистрация

На бесплатном вебинаре мы:
— попрактикуемся применять принципы чистой архитектуры с использованием языка программирования Clojure и фреймворка Duct.

— познакомимся с его модульной системой, реализуем DI контейнер, подключим адаптеры во все порты и вообще сделаем все, как дедушка Боб нам завещал))

Экспертизой поделится руководитель программы и практик Сергей Ткаченко (Clojure Software developer / Team Lead).

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥31
Класс "обертка" (wrapper class)

Класс-обертка (wrapper class) — это класс, который обеспечивает возможность использования примитивных типов данных как объектов. Каждый примитивный тип данных в Java имеет соответствующий класс-обертку: byte — Byte, short — Short, int — Integer, long — Long, float — Float, double — Double, boolean — Boolean и char — Character.

Классы-обертки используются, например, при работе с объектами коллекций, такими как ArrayList, где примитивные типы не могут быть использованы (список может хранить только объекты).

В этом примере мы создаем объекты классов-оберток для примитивных типов int, double, char и выводим значения этих объектов с помощью метода println().
👍212🔥2❤‍🔥1
Шпаргалка по основам Java с примерами кода.

В ней есть всё, что может пригодиться начинающему разработчику.

Оригинал в хорошем качестве можно взять тут
👍3943🔥3
SQLException

SQLException
это класс исключений, используемый для обработки ошибок, связанных с работой с базами данных.

Обычно он возникает при выполнении запросов к БД через JDBC и сигнализирует об ошибках соединения с БД, синтаксических ошибках в SQL запросе, проблемах с транзакциями и т.д.

Здесь мы подключаемся к БД, выполняем запрос INSERT и отлавливаем возможную ошибку через блок catch по SQLException.

Если запрос выполнится успешно, ничего не будет выведено в консоль.
Если произойдет ошибка, например, из-за неправильного SQL синтаксиса, будет выведена информация об исключении.
👍102🔥2
Грокаем функциональное программирование (2024)

Вам кажется, что функциональное программирование – это нечто сложное, доступное только гуру программирования? Эта книга развенчает миф об элитарности и позволит любому программисту с легкостью разобраться в хитросплетениях кода.
От знакомых и простых идей ООП вы перейдете к ФП, рассматривая его на простых примерах, захватывающих упражнениях и большом количестве иллюстраций.
Вы начнете с решения простых и маленьких задач, иллюстрирующих базовые понятия, такие как чистые функции и неизменяемые данные, научитесь писать код, лишенный типичных ошибок, обусловленных наличием сложного распределенного состояния, разберетесь с подходами к реализации ввода-вывода, параллельного выполнения и потоковой передачи данных. К концу книги вы будете создавать ясный функциональный код, который легко читается, тестируется и сопровождается.
👍18🔥3
👩‍💻 Два самых полезных слова в многопоточности join() и Future

Синхронизируем потоки между собой и получаем данные из потока на языке программирования Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
Что такое «шаблон проектирования»?

Шаблон (паттерн) проектирования (design pattern) — это проверенное и готовое к использованию решение. Это не класс и не библиотека, которую можно подключить к проекту, это нечто большее - он не зависит от языка программирования, не является законченным образцом, который может быть прямо преобразован в код и может быть реализован по-разному в разных языках программирования.

Плюсы использования шаблонов:
• снижение сложности разработки за счёт готовых абстракций для решения целого класса проблем.
• облегчение коммуникации между разработчиками, позволяя ссылаться на известные шаблоны.
• унификация деталей решений: модулей и элементов проекта.
• возможность отыскав удачное решение, пользоваться им снова и снова.
• помощь в выборе выбрать наиболее подходящего варианта проектирования.

Минусы:
• слепое следование некоторому выбранному шаблону может привести к усложнению программы.
• желание попробовать некоторый шаблон в деле без особых на то оснований.
👍16🔥3
⚡️ Тест по Java от OTUS

Проверь насколько хорошо ты знаешь Java

Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса🎁 .

👉 ПРОЙТИ ТЕСТ: https://otus.pw/oTUW/

🎫 Курс можно приобрести в рассрочку

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2😁2
Hibernate — проблема декартова произведения при запросах с пагинацией

Часто мы сталкиваемся с проблемой декартова произведения при использовании Hibernate, иногда даже не замечая этого. Особенно явно эта проблема проявляет себя при запросах с пагинацией.

В своем
докладе Артём рассмотрит следующие вопросы:
— Когда можно столкнуться с этой проблемой?
— Как с виду очевидное решение не всегда оказывается самым производительным?
— Вы уже перешли на Hibernate 6? А вот вам баг, который обнаружил спикер при подготовке этого доклада. Обсудим причину его возникновения и связь с темой доклада.
— Варианты решения проблемы декартова произведения: плюсы и минусы.
👍111🔥1
SoftHashMap

SoftHashMap — это реализация интерфейса Map, которая использует слабые ссылки для хранения ключей и значений.
От обычной HashMap она отличается тем, что при нехватке памяти она может автоматически удалять наименее используемые элементы.

SoftHashMap часто применяется для реализации кешей, где допустима потеря части данных.
Например, кеш изображений в приложении. Если память закончилась, то часть картинок будет удалена из SoftHashMap, но основная часть приложения продолжит работать.
👍35🔥61
Всем, привет, мы исследовательское агентство SmartMinds и сейчас проводим опрос среди IT специалистов. Что хотим узнать: что важно при выборе работодателя, какие каналы являются эффективными при поиске работы и ходите ли вы на мероприятия для IT. Опрос анонимный, займет не более 3-х минут и мы будем благодарны всем, кто примет участие.

Пройти опрос
👍63
Грокаем стриминг (2023) PDF

Стриминговые системы позволяют сократить до минимума время между событием и обработкой информации, чтобы вы получали результаты в реальном времени. В приложениях для финансовой сферы, в вопросах безопасности и IoT важна каждая миллисекунда, поэтому без стриминговых систем не обойтись. А еще — это модно и приносит деньги ;) ! Неслучайно специалисты в Spark, Heron и Kafka так востребованы.
Наконец, вы можете познакомиться с созданием стриминговых приложений и обработкой событий в реальном времени не продираясь через технические подробности конкретных фреймворков, головоломные термины и сложные формулировки. Простой язык и яркие примеры позволят вам познакомиться с базовыми концепциями, а чтобы усвоить описанные идеи и приемы, вы построите собственную простую стриминговую программу с нуля.

От читателя не требуется опыт работы со стриминговыми системами. Примеры написаны на языке Java.
👍20🔥54