Hey Wong,
Adding to Stephan's very clear explanation, using older version of Collection syntax will work - even if you insert different types of objects. However, it is very likely to throw ClassCastException(occurs at runtime and will break your application) when you try to retreive the objects from collection.
Also, since Generics are implemented by type erasure in java, check for <Type> is done only at compile time and types are erased post compilation. Therefore, bytecode(please compare .class files) generated will be exactly same in case of parameterized and non-parameterized collection.
Slightly off the topic, I would recommend you read other uses of Generics if not already - HolderClasses.
Please let us know if you have any questions.
Best regards,
Aadi