What implementations of the Prototype Pattern exist on the Java platform?
A prototype pattern is a creational design pattern used in software development when the type of objects to create is determined by a prototypical instance, which is cloned to produce new objects.
Prototype-based programming is a style of object-oriented programming in which classes are not present, and behavior reuse (known as inheritance in class-based languages) is performed via a process of cloning existing objects that serve as prototypes.
The implementation should be aware that some Java objects are mutable, and some are immutable (see Mutable vs Immutable objects).
According to Josh Bloch and Doug Lea, Cloneable is broken. In that case, you can use a copy constructor.