List<?> can be assigned any kind of object as generic type whereas List<Object> can be assigned only an object of Object class as generic type. [ September 11, 2008: Message edited by: Vijitha Kumara ]
Also, List<Object> allows adding any object that IS-A Object (which is every object ). List<?> does not allow adding anything, since the compiler cannot tell if the added object would be compatible with the type - because the type is unknown.