From 258a0a1695e5b4d0c1a68a8688634387b7667d97 Mon Sep 17 00:00:00 2001 From: Sergey Melnikov <70698479+melniknow@users.noreply.github.com> Date: Fri, 25 Apr 2025 20:11:32 +0600 Subject: [PATCH 1/5] Fix typos (#170) Co-authored-by: Sergey Melnikov --- db.md | 2 +- java8.md | 2 +- jcf.md | 2 +- jdbc.md | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/db.md b/db.md index 3f7aa80..32aae03 100644 --- a/db.md +++ b/db.md @@ -179,7 +179,7 @@ __По количественному составу__ __По характеристике содержимого__ + _уникальный индекс_ состоит из множества уникальных значений поля; -+ _плотный индекс_ (NoSQL) — индекс, при котором, каждом документе в индексируемой коллекции соответствует запись в индексе, даже если в документе нет индексируемого поля. ++ _плотный индекс_ (NoSQL) — индекс, при котором, каждому документу в индексируемой коллекции соответствует запись в индексе, даже если в документе нет индексируемого поля. + _разреженный индекс_ (NoSQL) — тот, в котором представлены только те документы, для которых индексируемый ключ имеет какое-то определённое значение (существует). + _пространственный индекс_ — оптимизирован для описания географического местоположения. Представляет из себя многоключевой индекс состоящий из широты и долготы. + _составной пространственный индекс_ — индекс, включающий в себя кроме широты и долготы ещё какие-либо мета-данные (например теги). Но географические координаты должны стоять на первом месте. diff --git a/java8.md b/java8.md index 904d885..f430b6a 100644 --- a/java8.md +++ b/java8.md @@ -230,7 +230,7 @@ public static void main(String[] args) { ## Какие виды ссылок на методы вы знаете? + на статический метод; + на метод экземпляра; -+ на конструкторе. ++ на конструктор. [к оглавлению](#java-8) diff --git a/jcf.md b/jcf.md index d856cd9..9e9dcf2 100644 --- a/jcf.md +++ b/jcf.md @@ -883,7 +883,7 @@ __Один__ новый объект статического вложенног [к оглавлению](#java-collections-framework) ## Как перебрать все пары «ключ-значение» в `Map`? -Использовать метод `entrySet()`, который возвращает множество `Set` пар «ключ-значение». +Использовать метод `entrySet()`, который возвращает множество `Set>` пар «ключ-значение». [к оглавлению](#java-collections-framework) diff --git a/jdbc.md b/jdbc.md index 3211f10..56754a6 100644 --- a/jdbc.md +++ b/jdbc.md @@ -190,9 +190,9 @@ __Уровень изолированности транзакций__ — зн Объекты-носители интерфейсов создаются при помощи методов объекта `java.sql.Connection`: -+ `java.sql.createStatement()` возвращает объект _Statement_; -+ `java.sql.prepareStatement()` возвращает объект _PreparedStatement_; -+ `java.sql.prepareCall()` возвращает объект _CallableStatement_; ++ `java.sql.Connection.createStatement()` возвращает объект _Statement_; ++ `java.sql.Connection.prepareStatement()` возвращает объект _PreparedStatement_; ++ `java.sql.Connection.prepareCall()` возвращает объект _CallableStatement_; [к оглавлению](#jdbc) From 5d1c11772e10cb89c1da1ffa0ec99b5719eaec3a Mon Sep 17 00:00:00 2001 From: Anton Shliakhtin Date: Wed, 28 May 2025 09:02:43 +0200 Subject: [PATCH 2/5] Remove duplicate link (#172) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 17ff0b3..472e92e 100644 --- a/README.md +++ b/README.md @@ -834,7 +834,6 @@ + [Top Spring Framework Interview Questions](https://www.baeldung.com/spring-interview-questions) + [Spring Interview Questions](https://www.interviewbit.com/spring-interview-questions/) + [Hibernate Interview Questions](https://www.adaface.com/blog/hibernate-interview-questions/) -+ [Hibernate Interview Questions](https://www.adaface.com/blog/hibernate-interview-questions/) + [Java Interview Questions](https://labex.io/interview-questions/java) [к оглавлению](#Вопросы-для-собеседования-на-java-developer) From 8c073b3e38ab15ec87f7b290a19cbb72610402a3 Mon Sep 17 00:00:00 2001 From: laptiieff Date: Tue, 3 Mar 2026 18:59:55 +0200 Subject: [PATCH 3/5] Improve answer to composition vs aggregation question in oop.md (#176) --- oop.md | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/oop.md b/oop.md index 8464512..50209c4 100644 --- a/oop.md +++ b/oop.md @@ -363,10 +363,49 @@ __«имеет»__ подразумевает ассоциацию (агрега ## В чем разница между _композицией_ и _агрегацией_? Ассоциация обозначает связь между объектами. Композиция и агрегация — частные случаи ассоциации «часть-целое». -Агрегация предполагает, что объекты связаны взаимоотношением «part-of» (часть). Композиция более строгий вариант агрегации. Дополнительно к требованию «part-of» накладывается условие, что экземпляр «части» может входить только в одно целое (или никуда не входить), в то время как в случае агрегации экземпляр «части» может входить в несколько целых. +_Композиция_ — вложенный объект не может существовать без владельца (владелец создает и уничтожает его): ->Например, книга состоит из страниц, и мы не можем вырвать страницу из книги и вложить в другую книгу. Страницы четко привязаны к конкретной книге, поэтому это композиция. -В тоже время мы можем взять и перенести книгу из одной библиотеки в другую - это уже агрегация. +```java +class Engine { + private final int horsepower; + + Engine(int horsepower) { + this.horsepower = horsepower; + } +} + +class Car { + private final Engine engine; // Engine живёт и умирает вместе с Car + + Car(int horsepower) { + this.engine = new Engine(horsepower); // Car сам создаёт Engine + } +} +``` + +_Агрегация_ — вложенный объект существует независимо, передается извне: + +```java +class Driver { + private final String name; + + Driver(String name) { + this.name = name; + } +} + +class Car { + private Driver driver; // Driver может существовать без Car + + Car(Driver driver) { + this.driver = driver; // Car получает Driver извне + } +} +``` + +Коротко: если `new` внутри класса — композиция, если объект приходит снаружи — агрегация. + +Предпочтительнее использовать агрегацию и внедрять зависимости через конструктор. Это автоматически делает код тестируемым и следует принципу Dependency Inversion из SOLID. Композицию стоит применять, когда есть чёткая причина "спрятать" создание объекта внутрь класса. [к оглавлению](#ООП) From 0698285b0f8a8f3a9ad773e8e10874b372eb8e57 Mon Sep 17 00:00:00 2001 From: Enchased Horse Date: Fri, 26 Jun 2026 10:22:34 +0300 Subject: [PATCH 4/5] Update Placeholder.txt --- images/SQL/Placeholder.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/SQL/Placeholder.txt b/images/SQL/Placeholder.txt index a9b4ab1..8b13789 100644 --- a/images/SQL/Placeholder.txt +++ b/images/SQL/Placeholder.txt @@ -1 +1 @@ -Images for SQL + From 2c3017d4e9d4de03267271f0b134a5a0b878db91 Mon Sep 17 00:00:00 2001 From: Chanov Sergei <73557863+Cair06@users.noreply.github.com> Date: Tue, 4 Aug 2026 10:44:40 +0300 Subject: [PATCH 5/5] Update core.md (#178) --- core.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core.md b/core.md index f7b6100..bbf189e 100644 --- a/core.md +++ b/core.md @@ -1289,7 +1289,7 @@ public native int hashCode(); [к оглавлению](#java-core) ## Можно ли так реализовать метод `equals(Object that) {return this.hashCode() == that.hashCode()}`? -Строго говоря нельзя, поскольку метод `hashCode()` не гарантирует уникальность значения для каждого объекта. Однако для сравнения экземпляров класса `Object` такой код допустим, т.к. метод `hashCode()` в классе `Object` возвращает уникальные значения для разных объектов (его вычисление основано на использовании алгоритма генерации случайных чисел). +Строго говоря нельзя, поскольку метод `hashCode()` не гарантирует уникальность значения для каждого объекта. Для сравнения экземпляров класса `Object` такой код также недопустим, т.к. стандартный метод `hashCode()` в классе `Object` даже при использовании алгоритма генерации случайных чисел не гарантирует уникальные значения для разных объектов из-за ограниченности диапазона чисел int. [к оглавлению](#java-core)