It’s called a “method reference” and it’s a syntactic sugar for expressions like this:
numbers.forEach(x -> System.out.println(x));
Here, you don’t actually need the name x in order to invoke println for each of the elements. That’s where the method reference is helpful – the :: operator denotes you will be invoking the println method with a parameter, which name you don’t specify explicitly:
numbers.forEach(System.out::println);