List等を宣言するとき

OK

ArrayList<String> stringList = new ArrayList<String>();

ArrayList<String> stringList = new ArrayList<>();

ArrayListはListを継承してるので代入可。

List<String> stringList = new ArrayLis<>t();

ジェネリクスは片方だけでも可。

ArrayList stringList = new ArrayList<String>();

NG

String型はObject型に代入できるので行けるかと思いきや、両辺に指定する場合は型を揃えないといけない。

ArrayList<Object> stringList = new ArrayList<String>();