Detalhes da implementação de referência de expressão vs método lambda

Dado isto:

class MyClass {
    static class A {
        public boolean property() {
            return Math.random() < 0.5;
        }
    }

    static List<A> filterLambda(List<A> list) {
        return list.stream().filter(a -> a.property()).collect(Collectors.toList());
    }

    static List<A> filterMethodCall(List<A> list) {
        return list.stream().filter(A::property).collect(Collectors.toList());
    }
}
Quais são as diferenças deo que o compilador faz para cada método?Caso exista, existe alguma diferença no uso da memória ou no tempo de execução? (mesmo que seja pequeno, a questão é apenas acadêmica)

PD: Eu sei que a pergunta é semelhante aeste mas acho que não foi resolvido corretamente.

questionAnswers(3)

yourAnswerToTheQuestion