Java библиотека – Telegram
Java библиотека
31.5K subscribers
2.38K photos
91 videos
10 files
2.19K links
Книги, статьи, мемы и многое другое для Java программиста!

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

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

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

Сообщество VK https://vk.com/javatutorial
Download Telegram
Что выведет эта программа?

Ответ:
Программа напечатает “num1 == num2”. Если мы сравниваем две ссылки на объекты с помощью ==, значение всегда будет «false». Но в этом примере переменные num1 и num2 автоупаковываются (autoboxing) из-за Integer-кэширования. Вот почему num1 == num2 возвращает значение «true». Не забудьте, что Integer-кэширование актуально только для значений от -128 до 127.
👍71🔥15❤‍🔥21🎄1
Какие существуют уровни изолированности транзакций?

В порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными:
Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
👍26❤‍🔥41
Проблема квадрата/прямоугольника, объяснение и решение

В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.
👍10
Философия Java (2015) PDF

Впервые читатель может познакомиться с полной версией этого классического труда, который ранее на русском языке печатался в сокращении. Книга, выдержавшая в оригинале не одно переиздание, за глубокое и поистине философское изложение тонкостей языка Java считается одним из лучших пособий для программистов. Чтобы по-настоящему понять язык Java, необходимо рассматривать его не просто как набор неких команд и операторов, а понять его "философию", подход к решению задач, в сравнении с таковыми в других языках программирования. На этих страницах автор рассказывает об основных проблемах написания кода: в чем их природа и какой подход использует Java в их разрешении. Поэтому обсуждаемые в каждой главе черты языка неразрывно связаны с тем, как они используются для решения определенных задач.
👍194🔥2
Что такое «SQL»?

SQL, Structured query language («язык структурированных запросов») — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).
👍25
Краткая шпаргалка по паттернам проектирования
🔥94
Что такое «модульное тестирование»?

Модульное/компонентное тестирование (unit testing) - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.

Модульные тесты можно условно поделить на две группы:
• тесты состояния (state based), проверяющие что вызываемый метод объекта отработал корректно, проверяя состояние тестируемого объекта после вызова метода.

• тесты взаимодействия (interaction tests), в которых тестируемый объект производит манипуляции с другими объектами. Применяются, когда требуется удостовериться, что тестируемый объект корректно взаимодействует с другими объектами.
👍21
Какие существуют виды тестовых объектов?

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

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

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

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

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

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

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

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

фикция (mock object) похож на шпиона, но обладает расширенной функциональностью, заранее заданными поведением и реакцией на вызовы.
👍30🔥54
Принцип разделения интерфейса - SOLID в деталях

Принцип разделения интерфейса гласит: "Клиент не должен зависеть от интерфейсов, которые он не использует"

В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
👍172🔥1
Forwarded from Java Guru 🤓
Что выведет код?
👍23
Forwarded from Java Guru 🤓
👍163
👩‍💻 Spring по верхам: Разработка REST-сервиса

В серии коротких роликов "Spring по верхам" автор вкратце рассказывает о применении экосистемы Spring при разработке приложений на платформе Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
Структуры данных и алгоритмы в Java (2013) PDF

Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы - это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике усвоить полученные знания.
👍25🔥3
Чем stub отличается от mock?

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

mock использует подмену результатов вызова, проверяет сам факт взаимодействия, протоколирует и контролирует его.
👍271
👩‍💻 Java. Представление отрицательных чисел. Преобразование цветной фотографии в черно-белую.

В этом видео автор рассказывает о представлении в отрицательных чисел в компьютере на примере типа byte. Показывает, что можно получить, если забыть, что все целочисленные типы в языке программирования Java знаковые. В качестве практической части, пишет алгоритм для преобразования цветной фотографии в черно-белую.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131🔥1
Java. Полное руководство, 12-е издание (2022) PDF, DJVU

В полностью обновленном с учетом версии Java SE 17 издании объясняется, как разрабатывать, компилировать, отлаживать и запускать программы на Java. Автор многочисленных бестселлеров по программированию Герберт Шилдт охватывает весь язык Java, включая его синтаксис, ключевые слова и фундаментальные принципы программирования. Вы также найдете здесь информацию об основных частях библиотеки Java API, таких как ввод-вывод, Collections Framework, библиотека потоков и утилиты параллелизма. Исследуются темы Swing, JavaBeans и сервлеты, а многочисленные примеры демонстрируют язык Java в действии. Конечно же, подробно обсуждаются недавние дополнения к языку Java, в том числе записи, запечатанные классы и выражения switch. Книга написана в ясном и четком стиле, который делает книги Шилдта выбором миллионов людей во всем мире.
👍303🔥3🍾3
Привет! Это хостинг SpaceWeb 👋

Здесь мы собрали 490+ постов на тему IT-технологий, веб-разработки, DevOps, маркетинга и бизнеса в сети.

💡 Подпишитесь на SpaceWeb

И следите за тем, как мы развиваем облачные сервисы!

Реклама: sweb.ru erid: 2VtzquZu89V
👍12🔥21🤩1
Forwarded from Java Guru 🤓
Каким будет результат компиляции и выполнения следующего кода?
👍14😁4
Forwarded from Java Guru 🤓
Каким будет результат компиляции и выполнения следующего кода?
Anonymous Quiz
42%
Вывод в консоль - 1
5%
Вывод в консоль - 2
43%
Ошибка во время компиляции
10%
Ошибка во время исполнения
👍16