Java создает файл .class для каждого анонимного класса (классы с именами MyClass$1.class, MyClass$2.class..). Фактически, Java применяет то же самое для лямбда-выражений. Однако я не вижу сгенерированного класса, когда использую ссылку на метод в своем коде. Как Java разрешает их без создания анонимного класса?
Пример:
List<String> names = Arrays.asList("Java8", "Lambdas", "In", "Action");
Stream<String> s = names.stream();
s.forEach(System.out::println);
.class
файлов… См. также здесь - person Holger   schedule 09.07.2015