Вы явно не храните ссылку, но supplyAsync
это внутренне.Метод создает CompletableFuture
и отправляет задачу в ForkJoinPool
(если вы используете общий пул), на который имеется ссылка.CompletableFuture
, возвращаемый whenComplete
, становится зависимым от этого первого CompletableFuture
и, следовательно, также ссылается на него.
Все эти объекты будут доступны для сборки мусора, когда ForkJoinPool
завершит выполнение Supplier
, отмечает первый CompletableFuture
как завершенный, запускает второй CompletableFuture
и выполняет BiConsumer
, переданный whenComplete
.
Вы в безопасности.