Библиотека Java разработчика
10.8K subscribers
1.14K photos
563 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
Подборка книг 2000 - 2003 годов по Java на Eng

https://box.cs.istu.ru/public/docs/other/_Unsorted/new/Java/

👉@BookJava
🤡9👎3🔥1🤔1🏆1
Что находится внутри класса Math?

👉@BookJava
👍41
Что такое перегрузка методов?

Перегрузка методов — это свойство полиморфизма, в котором при помощи изменения сигнатуры метода можно создать различные реализации методов для одной и той же операции:
- одинаковое имя метода;
- различные аргументы;
- различный порядок аргументов;

Например, один и тот же add() из List может быть перегружен следующим образом и будет выполнять добавление разным способом, в зависимости от аргументов метода:
- add(Object o) — просто добавляет объект;
- add(int index, Object o) — добавляет объект в определенный индекс;
- add(Collection<Object> c) — добавляет список объектов;
- add(int index, Collection<Object> c) — добавляет список объектов, начиная с определенного индекса.

👉@BookJava
👍71🔥1
Управление зависимостями в IntelliJ IDEA

В этом руководстве, в продолжение темы просмотра зависимостей, мы рассмотрим управление зависимостями в IntelliJ IDEA.

Мы рассмотрим различные способы добавления зависимостей в ваш проект, а также способы добавления, обновления и удаления зависимостей с помощью Package Search.

Rus https://habr.com/ru/post/710802/
Eng https://foojay.io/today/managing-dependencies-in-intellij-idea/

👉@BookJava
Что такое livelock?

livelock – тип взаимной блокировки, при котором несколько потоков выполняют бесполезную работу, попадая в зацикленность при попытке получения каких-либо ресурсов. При этом их состояния постоянно изменяются в зависимости друг от друга. Фактической ошибки не возникает, но КПД системы падает до 0. Часто возникает в результате попыток предотвращения deadlock.

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

👉@BookJava
👍8
Java 20: огромные разреженные сегменты памяти

Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы? Прочтите эту статью и узнайте, как использовать сопоставленные (mapped) сегменты памяти, которые могут быть или не быть «разреженными», и как выделить 64 терабайта разреженных данных на ноутбуке.

Rus https://habr.com/ru/post/710664/

Eng https://minborgsjavapot.blogspot.com/2023/01/java-20-colossal-sparse-memory-segments.html

👉@BookJava
В чём различия между volatile и Atomic переменными?

volatile принуждает использовать единственный экземпляр переменной, но не гарантирует атомарность. Например, операция count++ не станет атомарной просто потому, что count объявлена volatile. C другой стороны class AtomicInteger предоставляет атомарный метод для выполнения таких комплексных операций атомарно, например getAndIncrement() – атомарная замена оператора инкремента, его можно использовать, чтобы атомарно увеличить текущее значение на один. Похожим образом сконструированы атомарные версии и для других типов данных.

👉@BookJava
👍4
Чем отличаются JRE, JVM И JDK?

JRE кратко - для работы. Java Runtime Environment (сокр. JRE) - минимальная реализация виртуальной машины, необходимая для исполнения Java-приложений, без компилятора и других средств разработки. Состоит из виртуальной машины - Java Virtual Machine и библиотеки Java-классов.

JDK кратко - для программирования. Java Development Kit (сокращенно JDK) - бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE).

Java Virtual Machine (сокращенно Java VM, JVM) - виртуальная машина Java - основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java интерпретирует Байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирования.

👉@BookJava
👍5
Отличие интерфейса Runnable и Callable?

• Интерфейс Runnable появился в Java 1.0, а интерфейс Callable был введен в Java 5.0 в составе библиотеки java.util.concurrent;
• Классы, реализующие интерфейс Runnable для выполнения задачи должны реализовывать метод run(). Классы, реализующие интерфейс Callable - метод call();
• Метод Runnable.run() не возвращает никакого значения, Callable.call() возвращает объект Future, который может содержать результат вычислений;
Метод run() не может выбрасывать проверяемые исключения, в то время как метод call() может.

👉@BookJava
👍5