Библиотека джависта | Java, Spring, Maven, Hibernate
24.2K subscribers
1.97K photos
38 videos
42 files
2.78K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Телеграм-канал про разгон мозга 🧠https://yangx.top/mind_rise
1. Объективная информация о том, как повысить продуктивность;
2. Репорты участников про эффективные инструменты и способы разгона мозга;
3. Пруфы, исследования и проверенная информация, готовая к применению на практике.

Подписывайтесь и узнайте подробности— https://yangx.top/mind_rise

#реклама
👍2
Дайте определение терминам «простой», «составной» (composite), «потенциальный» (candidate) и «альтернативный» (alternate) ключ.

Простой ключ состоит из одного атрибута (поля). Составной - из двух и более.

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

Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют альтернативными.
👍15
Что такое «нормализация»?

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

Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации.
👍20
#вопросы_с_собеседований
Чем абстрактный класс отличается от интерфейса? В каких случаях следует использовать абстрактный класс, а в каких интерфейс?

☕️ В Java класс может одновременно реализовать несколько интерфейсов, но наследоваться только от одного класса.
☕️ Абстрактные классы используются только тогда, когда присутствует тип отношений «is a» (является). Интерфейсы могут реализоваться классами, которые не связаны друг с другом.
☕️ Абстрактный класс - средство, позволяющее избежать написания повторяющегося кода, инструмент для частичной реализации поведения. Интерфейс - это средство выражения семантики класса, контракт, описывающий возможности. Все методы интерфейса неявно объявляются как public abstract или (начиная с Java 8) default - методами с реализацией по-умолчанию, а поля - public static final.
☕️ Интерфейсы позволяют создавать структуры типов без иерархии.
☕️ Наследуясь от абстрактного, класс «растворяет» собственную индивидуальность. Реализуя интерфейс, он расширяет собственную функциональность.

Абстрактные классы содержат частичную реализацию, которая дополняется или расширяется в подклассах. При этом все подклассы схожи между собой в части реализации, унаследованной от абстрактного класса и отличаются лишь в части собственной реализации абстрактных методов родителя. Поэтому абстрактные классы применяются в случае построения иерархии однотипных, очень похожих друг на друга классов. В этом случае наследование от абстрактного класса, реализующего поведение объекта по умолчанию может быть полезно, так как позволяет избежать написания повторяющегося кода. Во всех остальных случаях лучше использовать интерфейсы.
👍48
Какие существуют типы связей в базе данных? Приведите примеры.

Один к одному - любому значению атрибута А соответствует только одно значение атрибута В, и наоборот.

Каждый университет гарантированно имеет 1-го ректора: 1 университет → 1 ректор.

Один ко многим - любому значению атрибута А соответствует 0, 1 или несколько значений атрибута В.

В каждом университете есть несколько факультетов: 1 университет → много факультетов.

Многие ко многим - любому значению атрибута А соответствует 0, 1 или несколько значений атрибута В, и любому значению атрибута В соответствует 0, 1 или несколько значение атрибута А.

1 профессор может преподавать на нескольких факультетах, в то же время на 1-ом факультете может преподавать несколько профессоров: Несколько профессоров ↔️ Несколько факультетов.
👍17🔥2
Пустая коллекция вместо Null

Если ваша программа может вернуть коллекцию, которая не содержит никаких значений, убедитесь, что возвращается пустая коллекция, а не Null. Это сэкономит вам время на различные проверки и избавит от многих ошибок.
👍43
В чем отличие между кластерными и некластерными индексами?

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

При кластерном индексировании данные физически упорядочены, что серьезно повышает скорость выборок данных (но только в случае последовательного доступа к данным). Для одного набора данных может быть создан только один кластерный индекс.
👍6
#вопросы_с_собеседований
Какая разница между JSPWriter и сервлетным PrintWriter?

PrintWriter является объектом, отвечающим за запись содержания ответа на запрос. JspWriter использует объект PrintWriter для буферизации. Когда буфер заполняется или сбрасывается, JspWriter использует объект PrintWriter для записи содержания в ответ.
Создание PDF-документа на Java и Spring

Сегодня мы научимся с помощью eDocGen, Java и Spring создавать pdf-документы на основе шаблона из JSON/XML/БД.

https://dzone.com/articles/template-based-pdf-document-generation-in-java
🔥18👍2👏1
Зачем разработчику знать алгоритмы и структуры данных?

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

🔗 Основной сайт
🔗 Зеркало
👍2
Какие существуют уровни изолированности транзакций?

В порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными:
• Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
• Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
• Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
• Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
👍10🔥10
Что будет завтра — сложно сказать, поэтому мы решили сфокусироваться на сегодняшнем дне и провести короткий опрос «С какими трудностями вы столкнулись в последнее время?», чтобы понять, что сейчас вообще происходит в IT-индустрии.

Статью с результатами опроса опубликуем через неделю.

➡️ Пройти опрос (можно анонимно)
👍1
Что такое «SQL»?

SQL, Structured query language («язык структурированных запросов») — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).
👍12
В ожидании JDK 20

Java 19 появилась совсем недавно, но уже сейчас можно начинать привыкать к Java 20, которая появится в марте 2023.

Что же будет в новой версии? А вот что:
✔️Паттерны для записей
✔️Шаблоны строк
✔️Примитивные классы
✔️Последовательные коллекции
и др.

Кратко и по делу о будущей версии в предложенной статье.

Будущее уже рядом! 😳

Читать статью
👏9👍2
Шпаргалка по основам Java с примерами кода.

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

Оригинал в хорошем качестве можно взять тут
👍351😁1