You can't construct wildcard parametrized type, like this: new LinkedList<? extends Object>(). You must construct concrete parametrized type object or raw type object, like: new LinkedList<Object>() or new LinkedList()
and then Katrin concluded from this behaviour that a List<Object> and a List<? extends Object> is more or less the same thing.
No, it is not. Your list contains only objects (a String, an Integer, a Boolean and another String). Must compile, because you can store everything into an Object.
Compare with this:
This compiles also.
Back to your list of objects: You can put Strings, Integers etc inside easily, but what you get back from the list is an object. When you want eg to multiply the second entry with 3, then you first have to cast: