I tend to use interfaces on APIs and public methods. In locally scoped variables I see no design benefit from it, it just adds JVM overhead, more classes included, and using the concrete implementation is more explicit to the reader.