Может ли JVM оптимизировать этот код
Как этот код оптимизируется в компиляторе Java или JVM, я прошу специально для оптимизации, если этот код был написан java
Stream.of(1, 2, 3)
.map(i -> i + 1)
.map(i -> i + 1)
.map(i -> i + 1);
к чему-то вроде
Stream.of(1, 2, 3)
.map(i -> i + 3)
или быть еще более агрессивным и заменить его базовым циклом for, который может улучшить производительность.
В clojure есть концепцияпреобразователя, который является своего рода оптимизацией, которую вы можете сделать, чтобы объединить сокращаемые функции в одну функцию и устранить издержки ленивого распространения.Может ли JVM преобразовать некоторые функции в свободный API?
Например, если бы у нас был интерфейс декоратора для потоков Java
decor-map(decor-map(base-map (i -> i + 1), i -> i +1), i -> i + 1)
, тогда я предполагаю, что компиляция может каким-то образом попытаться преобразовать декораторкарты.Но как это возможно в беглом API?