Service service = new ServiceImpl();
Basically: for every interface there is an implementation with the "Impl" ending. That's not enough: sometimes both are configured in a XML-File (probably to emphasize the importance of this pattern :-)).
That is not only bloat (and the opposite of "Convention Over Configuration" idea), but it causes real damage:
I asked why developers are writing such code, but didn't got any reasonable answer, except "because of mocking".
This is, however, no more true for several years. Any ideas, why you are doing that?
See also: How To Deal With Interfaces In Java EE 6 (or no more Impl)