One disadvantage of the first line is that(may be someone has already point out)
As list is a interface and the classes which implements this interface is
AbstractList, ArrayList, LinkedList, Vector
it may be possible that These classes may have their own method which is not declared in List interface.
For Example,If you see for ArrayList
ArrayList implements these interfaces.
Cloneable, Collection, List, RandomAccess, Serializable
so there so many method which are not been declared in List interface but are available in ArrayList class.
So you are not able to call those method by using the refernce of List interface.
to see the method of ArrayList class have a Look at
here