Both methods have no meaningful implementation in class object. clone() even throws a RuntimeException if called on an object of type Object.
So I think these methods are kept protected to make it clear that they don't belong to the public API of class Object. But it's possible to promote them to public methods if you override them in a child class of Object and want to make them belong to the public API of your class.
Hi, good question. Since all Java objects implicitly extend the class Object anyway, this seems unnecessary, i.e. they might as well just make them public.
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.