You can find an overview of a lot of design patterns in Wikipedia. It also mentions which patterns are mentioned by GoF. I'll sum them up here and try to assign as many pattern implementations as possible, found in both the Java SE and Java EE APIs.
javax.xml.parsers.DocumentBuilderFactory#newInstance()javax.xml.transform.TransformerFactory#newInstance()javax.xml.xpath.XPathFactory#newInstance()java.lang.StringBuilder#append() (unsynchronized)java.lang.StringBuffer#append() (synchronized)java.nio.ByteBuffer#put() (also on CharBuffer, ShortBuffer, IntBuffer, LongBuffer, FloatBuffer and DoubleBuffer)javax.swing.GroupLayout.Group#addComponent()java.lang.Appendablejava.util.stream.Stream.Builderjava.util.Calendar#getInstance()java.util.ResourceBundle#getBundle()java.text.NumberFormat#getInstance()java.nio.charset.Charset#forName()java.net.URLStreamHandlerFactory#createURLStreamHandler(String) (Returns singleton object per protocol)java.util.EnumSet#of()javax.xml.bind.JAXBContext#createMarshaller() and other similar methodsjava.lang.Object#clone() (the class has to implement java.lang.Cloneable)java.util.Arrays#asList()java.util.Collections#list()java.util.Collections#enumeration()java.io.InputStreamReader(InputStream) (returns a Reader)java.io.OutputStreamWriter(OutputStream) (returns a Writer)javax.xml.bind.annotation.adapters.XmlAdapter#marshal() and #unmarshal()new LinkedHashMap(LinkedHashSet<K>, List<V>) which returns an unmodifiable linked map which doesn't clone the items, but uses them. The java.util.Collections#newSetFromMap() and singletonXXX() methods however comes close.java.awt.Container#add(Component) (practically all over Swing thus)javax.faces.component.UIComponent#getChildren() (practically all over JSF UI thus)java.io.InputStream, OutputStream, Reader and Writer have a constructor taking an instance of same type.java.util.Collections, the checkedXXX(), synchronizedXXX() and unmodifiableXXX() methods.javax.servlet.http.HttpServletRequestWrapper and HttpServletResponseWrapperjavax.swing.JScrollPanejavax.faces.context.FacesContext, it internally uses among others the abstract/interface types LifeCycle, ViewHandler, NavigationHandler and many more without that the enduser has to worry about it (which are however overrideable by injection).javax.faces.context.ExternalContext, which internally uses ServletContext, HttpSession, HttpServletRequest, HttpServletResponse, etc.java.lang.Integer#valueOf(int) (also on Boolean, Byte, Character, Short, Long and BigDecimal)java.lang.reflect.Proxyjava.rmi.*javax.ejb.EJB (explanation here)javax.inject.Inject (explanation here)javax.persistence.PersistenceContextjava.lang.Runnablejavax.swing.Actionjava.util.Patternjava.text.Normalizerjava.text.Formatjavax.el.ELResolverjava.util.Iterator (thus among others also java.util.Scanner!).java.util.Enumerationjava.util.Timer (all scheduleXXX() methods)java.util.concurrent.Executor#execute()java.util.concurrent.ExecutorService (the invokeXXX() and submit() methods)java.util.concurrent.ScheduledExecutorService (all scheduleXXX() methods)java.lang.reflect.Method#invoke()java.util.Date (the setter methods do that, Date is internally represented by a long value)java.io.Serializablejavax.faces.component.StateHolderjava.util.Observer/java.util.Observable (rarely used in real world though)java.util.EventListener (practically all over Swing thus)javax.servlet.http.HttpSessionBindingListenerjavax.servlet.http.HttpSessionAttributeListenerjavax.faces.event.PhaseListenerjavax.faces.lifecycle.LifeCycle#execute() (controlled by FacesServlet, the behaviour is dependent on current phase (state) of JSF lifecycle)java.util.Comparator#compare(), executed by among others Collections#sort().javax.servlet.http.HttpServlet, the service() and all doXXX() methods take HttpServletRequest and HttpServletResponse and the implementor has to process them (and not to get hold of them as instance variables!).javax.servlet.Filter#doFilter()java.io.InputStream, java.io.OutputStream, java.io.Reader and java.io.Writer.java.util.AbstractList, java.util.AbstractSet and java.util.AbstractMap.javax.servlet.http.HttpServlet, all the doXXX() methods by default sends a HTTP 405 "Method Not Allowed" error to the response. You're free to implement none or any of them.Observable , Observer )ContainerAdapter , ComponentAdapter , FocusAdapter , KeyAdapter , MouseAdapter不是适配器;它们是适配器。它们实际上是空对象。 Sun 的命名选择不佳。BufferedInputStream可以装饰其他流,例如FilterInputStream )java.lang.Runtime#getRuntime()是 SingletonButtonGroupAction , AbstractAction可以用于不同的视觉表示来执行相同的代码 -> 命令模式我猜还有更多
clone()方法可以用于此目的。