Olá Vinicius, tudo bem?
O operador "::" em Java é chamado de operador de referência a método. Ele é usado para referenciar um método de uma classe ou objeto sem executá-lo imediatamente. O operador "::" é uma forma mais concisa de passar um método como argumento para outro método ou construtor, em vez de criar uma classe anônima ou uma expressão lambda.
No seu exemplo, o operador "::" está sendo usado para referenciar o método getTempo() da classe Aula, que será utilizado no método comparing() da classe Comparator para realizar a comparação dos objetos Aula com base no tempo. O operador "::" é usado para obter uma referência ao método getTempo(), sem invocá-lo imediatamente.
O operador "::" não exige que você use parênteses após o nome do método. Por exemplo, o método getTempo() não recebe argumentos, portanto não é necessário o uso de parênteses. Se o método tivesse argumentos, o operador "::" seria seguido pelo nome do método e, em seguida, pelos parâmetros entre parênteses.