@@ -145,22 +145,26 @@ public static void main(String[] args) {
145145
146146}
147147
148- class SingleResolve implements Serializable {
148+ class SingleResolve implements Serializable {
149149
150150 private static final long serialVersionUID = 8396313380667197389L ;
151- private static class MySingletonHandler {
151+
152+ private static class MySingletonHandler {
152153 private static SingleResolve instance = new SingleResolve ();
153154 }
154155
155- private SingleResolve (){}
156+ private SingleResolve () {
157+ }
156158
157159 public static SingleResolve getInstance () {
158160 return MySingletonHandler .instance ;
159161 }
162+
160163 protected Object readResolve () throws ObjectStreamException {
161164 System .out .println ("调用了readResolve方法!" );
162165 return MySingletonHandler .instance ;
163166 }
167+
164168 public static void main (String [] args ) {
165169 SingleResolve singleton = SingleResolve .getInstance ();
166170
@@ -195,6 +199,36 @@ public static void main(String[] args) {
195199 }
196200
197201 }
202+
203+ }
204+ class SingleStatic {
205+ private static SingleStatic instance =null ;
206+ static {
207+ instance =new SingleStatic ();
208+ }
209+ private SingleStatic (){
210+ System .out .println ("eager" );
211+ }
212+ public static SingleStatic getInstance (){
213+ return instance ;
214+ }
198215
216+ public static void main (String [] args ) {
217+
218+ }
219+ }
220+
221+ enum EnumFactory {
222+ singletonFactory ;
223+ private SingleEnum instance ;
224+ private EnumFactory (){
225+ instance =new SingleEnum ();
226+ }
227+ public SingleEnum getInstance (){
228+ return instance ;
229+ }
199230
231+ }
232+ class SingleEnum {
233+ public SingleEnum (){}
200234}
0 commit comments