Как это работает, изложено в Javadoc :
Метод clone
для класса Object
выполняет определенную операцию клонирования. Во-первых, если класс этого объекта не реализует интерфейс Cloneable
, тогда генерируется CloneNotSupportedException
. Обратите внимание, что все массивы считаются для реализации интерфейса Cloneable. В противном случае этот метод создает новый экземпляр класса этого объекта и инициализирует все его поля точно содержимым соответствующих полей этого объекта, как если бы он был назначен; содержимое полей не клонируется. Таким образом, этот метод выполняет «мелкую копию» этого объекта, а не «глубокую копию».
Например, наивная, мелкая полевая копия, очень почти (но, вероятно, не совсем) просто побитовая копия объекта.
Я ищу подробности реализации нативного метода-клона.
Это будет варьироваться от реализации JVM до реализации JVM. Однако, вероятно, это будет довольно эффективная операция, если вас это беспокоит.