A declaração antes de "obj" significa que você esta utilizando a class List para guardar objetos do tipo *obs: o tipo object é o tipo mais genérico de todos, este tipo de declaração não é aconselhável pois para ler os dados deste objeto posteriormente você precisara fazer um "Cast" ou seja transformar este tipo generico de classe em um tipo específico. Isto é possível devido ao polimorfismo, mas lembre-se só é possível fazer isto pois a classe atribuida "ArrayList" não é uma interface e nem uma classe abstrata.
O simbolo "=" significa atribuição, ou seja você está atribuindo uma instância de ArrayList() a variável obj do tipo "List". Esta atribuição é aceitável pois o tipo ArrayList estende a classe List o que permite fazer esta implementação.
Como dito anteriormente esta classe Object é o tipo mais genérico em java, ou seja todas as classes existentes derivam se da class Object, o que significa que sua lista pode armazenar qualquer classe em java, porém com os malefícios de precisar fazer um "Cast" toda vez que precisar ler ou recuperar esta variável.