Scusa, rispondo solo ora. Riguardo i method reference, ci sono 3 forme differenti (a parte le forme per costruttori e per costruire array):
NomeClasse::metodoStatico
rifOggetto::metodoDiIstanza
NomeTipo::metodoDiIstanza
dove l'ultimo è solo un po' più particolare perché il "receiver" (ovvero l'oggetto su cui il metodoDiIstanza sarà invocato) diventa il primo argomento di una "equivalente" lambda expression.