> some things that very clearly should be objects, such as classes, are not objects
I don't get it. java.lang.Object.getClass() always returns an instance of java.lang.Class. What other behavior would you require before saying that Java classes are objects?