In order to be able to extend interfaces without having to implement the new methods in ALL existing implementers of this interface, the default method for an interface is added. The default method can have an implementation which will be used if implementers of the interface do not override this behaviour. If needed some implementers can overrride the method with different behaviour.
Streams help programmers to walk lists in a much more functional way. Start Runner in nl.aalten.java8.streams to see the differences in 'old' way and when using streams.