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


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

РКН clck.ru/3KoGeP
Download Telegram
Media is too big
VIEW IN TELEGRAM
Фантастические баги и где они обитают

Интерактивный мастер-класс по Java, на котором Юрий Пеньков, senior java-разработчик, рассказал о хитростях написания кода, неожиданных результатах выполнения, объяснил на примерах неочевидные моменты языка.

👉@BookJava
👍4
Перечислите стандартные функциональные интерфейсы

Стандартная библиотека содержит пакет java.util.function, в котором хранятся функциональные интерфейсы для большинства случаев жизни. Их можно разделить на 5 групп:

Функции
Обычная обобщенная функция – интерфейс Function<T, R>. Принимает параметр и возвращает значение другого типа. Для примитивов есть не-generic специализации – семейство интерфейсов XtoYFunction. (Здесь и далее вместо X и Y подставляются названия примитивов).

Бинарные функции – функции с двумя параметрами и возвращаемым значением. BiFunction<T, U, R>, ToXBiFunction<T, U>.

Поставщики (Suppliers)
Интерфейсы Supplier<T>, XSupplier – не принимают ничего, возвращают (поставляют) значение.

Потребители (Consumers)
Consumer<T>, XConsumer – принимают (потребляют) значение, ничего не возвращают.
Бинарный вариант, BiConsumer<T, U> и XYConsumer, потребляет два параметра.

Предикаты
Predicate<T>, XPredicate – принимают параметр, возвращают boolean. Кроме самой функции содержат дефолтные реализации логических операций.

Операторы
Унарный (UnaryOperator<T>) и бинарный (BinaryOperator<T>) – просто функция и би-функция с одинаковым типом параметров и результата. Специализации для примитивов XUnaryOperator и XBinaryOperator вдобавок содержат дефолтные реализации методов для композиции операторов.


👉@BookJava
Core_Java_Cheat_Sheet_VJ.pdf
287.7 KB
Большая шпаргалка по Java Core

👉@BookJava
💩2
Как выбрать все элементы определенного каталога по критерию (например, с определенным расширением)?

Метод File.listFiles возвращает массив объектов File, содержащихся в каталоге. Метод может принимать в качестве параметра объект класса, реализующего FileFilter. Это позволяет включить в список только те элементы, для которых метод accept возвращает true (критерием может быть длина имени файла или его расширение).

👉@BookJava
👍4
Backend на Java: большой курс для входа в профессию backend-разработчика

1 Занятие: Программа курса. Основы —уроки Backend-разработки на Java
2 Занятие: Основы ООП java— Backend-разработка на Java-B
3 Занятие: Продвинутый ООП java— Backend-разработка на JavaB
4 Занятие: Многопоточность в java— Backend-разработка на Java
5 занятие: Введение в Spring, Beans, Контекст, Внедрение зависимостей — Backend на Java
6 занятие: Введение в Spring. Spring Boot — Backend-разработка на JavaB
GIT ДЛЯ РАЗРАБОТЧИКА. Урок по гиту для начинающих— Обзор системы контроля версийB
7 занятие: Spring MVC. Контроллеры и жизненный цикл бинов— Backend-разработка на Java
Коллекции в Java | Java Collections — вебинар в рамках курса Backend- разработки на Java
8 занятие: Доступ к данным, Hibernate основы— Backend-разработка на JavaBr
8.2 занятие: Доступ к данным, отношения сущностей — Backend-разработка на Java
9 Занятие: Как работать с транзакциями, уровнями изоляции | ACID — уроки Backend-разработки на Java
10 занятие: Spring Rest CRUD операции. Репозитории - Backend-разработка на Java
Вебинар: Регистрация Авторизация Аутентификация Spring Security - Backend-разработка на Java
11 занятие: AOP Аспектно-ориентированное программирование — Backend-разработка на Java
Вебинар: Docker — Как работать с контейнерами? — Backend-разработка на Java
Что такое Java Garbage Collector, Как работает сборщик мусора в Java?
Erlang Elixir Phoenix — Экскурсия по пути герояBrain
Собеседование Java Spring - Разбор вопросов с собеседований на Java Developer
Докер — Что нужно знать? Контейнеризация с Docker для разработчиковBrai
Apache Kafka — Брокер сообщений для вашего Backend-аBrains

источник

👉@BookJava
👍5
AggreGate Java функции

— Линейная регрессия на JAVA
— Простая функция на JAVA
— Подключение сторонних библиотек, скрипты на JAVA
— Транспонирование таблицы AggreGate JAVA функцией
— Создание динамической HTML таблицы ч.1

источник

👉@BookJava
👍5
Forwarded from Java Geek
Метод retainAll()

Используется для удаления всех элементов списка массива, не содержащихся в указанной коллекции, или для сохранения всех совпадающих элементов в текущем экземпляре ArrayList, которые соответствуют всем элементам из списка Collection, переданного методу в качестве параметра.

Подробнее про метод можно почитать здесь.

@java_geek
👍51
Как вызвать нативный код?

Нативным (или машинным) кодом называется скомпилированный бинарный код. В него компилируется, например, код на C++. Java приложение может работать на любой платформе именно потому, что оно не компилируется в бинарник – вместо этого его байткод выполняется на виртуальной машине. Но порой нужно обратиться к готовой программе на другом языке, или воспользоваться специальными возможностями ОС.

Если бинарный код поставляется в виде библиотеки (.dll в Windows, .so в Unix), у вас есть два варианта:

JNI (Java Native Interface) – стандартный фреймворк взаимодействия с бинарным кодом. С ним можно в Java исходнике объявить метод без тела, а реализацию брать из бинарного файла. Простой пример использования читайте на хабре.

JNA (Java Native Access) – сторонняя open-source библиотека, ставшая стандартом де-факто. Медленнее чем JNI, но гораздо проще в использовании. В отличие от JNI не требует кодогенерации и написания вспомогательной обвязки. Несколько примеров вызова из Java кода функций бинарных библиотек можно найти на википедии.

Когда нативный код исполняемый (.exe в Windows, файл с правом x в Unix), можно запустить его отдельным процессом. Но если вы разрабатываете этот бинарный код самостоятельно, то лучше сэкономить на создании отдельного процесса, и выбрать вариант сборки в библиотеку.

👉@BookJava
👍6