SlideShare uma empresa Scribd logo
1 de 20
(Java)
@j5ik2o
@j5ik2o



 Scala
                         6
         5    Java
             Scala

 DDD(                        )

          (4,5,6     )
Singleton   )

                1


GoF
new


Hoge a = new Hoge(); // 1

Hoge b = new Hoge(); // 2       NG




                            1
public class Cache {
    //
 public static final Cache INSTANCE = new
Cache();
    private Cache() { } // new

    public void put(String key, Object value){ ... }
    public Object get(String key) { ... }
}
Cache.INSTANCE.put(key, value)
Object value = Cache.INSTANCE.get(key)
public class Cache {
    private static final Cache INSTANCE = new Cache();
    private Cache() { }
    public static Cache getInstance() {
      return INSTNACE;
    }
    public void put(String key, Object value){ ... }
    public Object get(String key) { ... }
}
Cache.getInstance().put(key, value)
Object value = Cache.getInstance().get(key)
public class Cache {
 private static ThreadLocal<Cache> threadLocal =
new ThreadLocal<Cache>() {
   @Override protected Cache initialValue() {
     return new Cache();
   }
 };
    public static Cache getInstnace() {
      return threadLocal.get();
    }
    public Object get(String key) { /* ... */ }
    public void put(String key, Object value) { /* ... */
                                                         }
}
1:
Effective Java                   3




public class CacheClient {
    //
    public void process() { getCache().put(...); // ... }
    // Cache
    Cache getCache() {
        return Cache.getInstance();
        // ↑

        //                            private

        // new Cache() { ... }

        //                                      ...

    }
}
public class SingletonCache implements Cache {
    private static SingletonCache instance;
    public static SingletonCache getInstnace() {
      return instance;
    }
    @Override public Object get(String key) { /* ... */ }
    @Override public void put(String key, Object value) { /* ... */ }
}
public class CacheClient {
    // ...
    Cache getCache() {
        return new Cache(){ /*             */ };

    }
}
2:
         P40-41
     singleton
3:

                    readObject
                w( o   )w!!!

Serializable

                                  transient
                          ...

  readResolve
  (GC)
         ...
  private Object readResolve() throws
  ObjectStreamException {
   return INSTANCE; //
  }
enum
public enum Cache {
    INSTANCE;
 public vod put(String key, Object
value) { /* ... */ }
 public Object get(String key) {/* ...
*/ }
}
Cache.INSTANCE.put(key, value);
enum                             Jad        ...
public final class Cache extends Enum<Cache>
{
    public static final EnumSingleton INSTANCE;
    private static final Cache $VALUES[];
  static { INSTANCE = new
EnumSingleton("INSTANCE", 0);
    $VALUES = (new Cache[] { INSTANCE }); }
    private Cache(String s, int i){ super(s, i); }
    // values, valueOf ...
}
(´    ∀      )
public class Singleton {
    private static Singleton instance;
 public synchronized static Singleton
getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
(    д )               ?!
public class Singleton {
        //

    private static class InstanceHolder {
   private static final Singleton INSTANCE = new
Singleton();
    }
    public static Singleton getInstance() {
        return InstanceHolder.INSTANCE;
    }
}
..(llil!´Д`lil)n{…??
public class Singleton {
    private static volatile Singleton instance
    public static Singleton getInstance() {
     Singleton result = instance; // (1)

     if (result == null) { // (2)             =>

         synchronized (Singleton.class) { // (3)            :

          result = instance; // (4)

          if (result == null) { // (5)

              result = instance = new Singleton(); // (6)

          }
         } //             :

     }
     return result;
}
getInstnace

              ”   ”
Scala   object

object Cache {
 def put(key:String, value:Any):Unit
= ...
    def get(key:String):Any = ...
}
Cache.put(key, value)
val value = Cache.get(key)
object        Singleton
public final class Cache$ implements ScalaObject
{
 public static final Cache$ MODULE$ = new
Cache$();
    private Cache$() { /* ... */ }
 public void put(String key, Object value) { /* ...
*/ }
    public Object get(String key) { /* ... */ }
}
Cache$.MODULE$.put(key, value)
Object value = Cache$.MODULE$.get(key)

Mais conteúdo relacionado

Mais procurados

C# Application program UNIT III
C# Application program UNIT IIIC# Application program UNIT III
C# Application program UNIT III
Minu Rajasekaran
 
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
julien.ponge
 
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
julien.ponge
 
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW SydneySoftware Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydney
julien.ponge
 
ikh331-06-distributed-programming
ikh331-06-distributed-programmingikh331-06-distributed-programming
ikh331-06-distributed-programming
Anung Ariwibowo
 

Mais procurados (20)

#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
 
Java Programming - 06 java file io
Java Programming - 06 java file ioJava Programming - 06 java file io
Java Programming - 06 java file io
 
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
 
JNI - Java & C in the same project
JNI - Java & C in the same projectJNI - Java & C in the same project
JNI - Java & C in the same project
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency Gotchas
 
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard LibraryHidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
 
Basic java, java collection Framework and Date Time API
Basic java, java collection Framework and Date Time APIBasic java, java collection Framework and Date Time API
Basic java, java collection Framework and Date Time API
 
What’s new in C# 6
What’s new in C# 6What’s new in C# 6
What’s new in C# 6
 
Nantes Jug - Java 7
Nantes Jug - Java 7Nantes Jug - Java 7
Nantes Jug - Java 7
 
C# Application program UNIT III
C# Application program UNIT IIIC# Application program UNIT III
C# Application program UNIT III
 
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
 
Java 7 LavaJUG
Java 7 LavaJUGJava 7 LavaJUG
Java 7 LavaJUG
 
In kor we Trust
In kor we TrustIn kor we Trust
In kor we Trust
 
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
 
Java 7 JUG Summer Camp
Java 7 JUG Summer CampJava 7 JUG Summer Camp
Java 7 JUG Summer Camp
 
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coinsoft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
 
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW SydneySoftware Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydney
 
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015  - 輕鬆學google的雲端開發 - Google App Engine入門(上)JCConf 2015  - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
 
ikh331-06-distributed-programming
ikh331-06-distributed-programmingikh331-06-distributed-programming
ikh331-06-distributed-programming
 
The uniform interface is 42
The uniform interface is 42The uniform interface is 42
The uniform interface is 42
 

Destaque

Destaque (7)

第一回Scala会議
第一回Scala会議第一回Scala会議
第一回Scala会議
 
コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門
 
Sbt職人のススメ
Sbt職人のススメSbt職人のススメ
Sbt職人のススメ
 
Scala with DDD
Scala with DDDScala with DDD
Scala with DDD
 
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
 
DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤
 

Semelhante a 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - シングルトンパターン(Java)

Javaoneconcurrencygotchas 090610192215 Phpapp02
Javaoneconcurrencygotchas 090610192215 Phpapp02Javaoneconcurrencygotchas 090610192215 Phpapp02
Javaoneconcurrencygotchas 090610192215 Phpapp02
Tarun Kumar
 
Java осень 2012 лекция 2
Java осень 2012 лекция 2Java осень 2012 лекция 2
Java осень 2012 лекция 2
Technopark
 
Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요
Chang W. Doh
 
A linked stack is implemented using a standard Node class as follows.pdf
A linked stack is implemented using a standard Node class as follows.pdfA linked stack is implemented using a standard Node class as follows.pdf
A linked stack is implemented using a standard Node class as follows.pdf
kisgstin23
 
From Runnable and synchronized To atomically() and parallel()
From Runnable and synchronized To atomically() and parallel()From Runnable and synchronized To atomically() and parallel()
From Runnable and synchronized To atomically() and parallel()
José Paumard
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLE
Darwin Durand
 
create a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdfcreate a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdf
f3apparelsonline
 
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docxNew folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
curwenmichaela
 
AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokus
HamletDRC
 

Semelhante a 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - シングルトンパターン(Java) (20)

Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency Gotchas
 
Javaoneconcurrencygotchas 090610192215 Phpapp02
Javaoneconcurrencygotchas 090610192215 Phpapp02Javaoneconcurrencygotchas 090610192215 Phpapp02
Javaoneconcurrencygotchas 090610192215 Phpapp02
 
Concurrency gotchas
Concurrency gotchasConcurrency gotchas
Concurrency gotchas
 
Design in the small
Design in the smallDesign in the small
Design in the small
 
Java осень 2012 лекция 2
Java осень 2012 лекция 2Java осень 2012 лекция 2
Java осень 2012 лекция 2
 
Hey Kotlin, How it works?
Hey Kotlin, How it works?Hey Kotlin, How it works?
Hey Kotlin, How it works?
 
Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요
 
Groovy Ast Transformations (greach)
Groovy Ast Transformations (greach)Groovy Ast Transformations (greach)
Groovy Ast Transformations (greach)
 
2020 Droid Knights CustomLint 적용기
2020 Droid Knights CustomLint 적용기2020 Droid Knights CustomLint 적용기
2020 Droid Knights CustomLint 적용기
 
Nice to meet Kotlin
Nice to meet KotlinNice to meet Kotlin
Nice to meet Kotlin
 
A linked stack is implemented using a standard Node class as follows.pdf
A linked stack is implemented using a standard Node class as follows.pdfA linked stack is implemented using a standard Node class as follows.pdf
A linked stack is implemented using a standard Node class as follows.pdf
 
From Runnable and synchronized To atomically() and parallel()
From Runnable and synchronized To atomically() and parallel()From Runnable and synchronized To atomically() and parallel()
From Runnable and synchronized To atomically() and parallel()
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLE
 
Workshop Scala
Workshop ScalaWorkshop Scala
Workshop Scala
 
create a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdfcreate a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdf
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
 
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docxNew folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
 
A topology of memory leaks on the JVM
A topology of memory leaks on the JVMA topology of memory leaks on the JVM
A topology of memory leaks on the JVM
 
OOP Lab Report.docx
OOP Lab Report.docxOOP Lab Report.docx
OOP Lab Report.docx
 
AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokus
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - シングルトンパターン(Java)

  • 2. @j5ik2o Scala 6 5 Java Scala DDD( ) (4,5,6 )
  • 3. Singleton ) 1 GoF
  • 4. new Hoge a = new Hoge(); // 1 Hoge b = new Hoge(); // 2 NG 1
  • 5. public class Cache { // public static final Cache INSTANCE = new Cache(); private Cache() { } // new public void put(String key, Object value){ ... } public Object get(String key) { ... } } Cache.INSTANCE.put(key, value) Object value = Cache.INSTANCE.get(key)
  • 6. public class Cache { private static final Cache INSTANCE = new Cache(); private Cache() { } public static Cache getInstance() { return INSTNACE; } public void put(String key, Object value){ ... } public Object get(String key) { ... } } Cache.getInstance().put(key, value) Object value = Cache.getInstance().get(key)
  • 7. public class Cache { private static ThreadLocal<Cache> threadLocal = new ThreadLocal<Cache>() { @Override protected Cache initialValue() { return new Cache(); } }; public static Cache getInstnace() { return threadLocal.get(); } public Object get(String key) { /* ... */ } public void put(String key, Object value) { /* ... */ } }
  • 8. 1: Effective Java 3 public class CacheClient { // public void process() { getCache().put(...); // ... } // Cache Cache getCache() { return Cache.getInstance(); // ↑ // private // new Cache() { ... } // ... } }
  • 9. public class SingletonCache implements Cache { private static SingletonCache instance; public static SingletonCache getInstnace() { return instance; } @Override public Object get(String key) { /* ... */ } @Override public void put(String key, Object value) { /* ... */ } } public class CacheClient { // ... Cache getCache() { return new Cache(){ /* */ }; } }
  • 10. 2: P40-41 singleton
  • 11. 3: readObject w( o )w!!! Serializable transient ... readResolve (GC) ... private Object readResolve() throws ObjectStreamException { return INSTANCE; // }
  • 12. enum public enum Cache { INSTANCE; public vod put(String key, Object value) { /* ... */ } public Object get(String key) {/* ... */ } } Cache.INSTANCE.put(key, value);
  • 13. enum Jad ... public final class Cache extends Enum<Cache> { public static final EnumSingleton INSTANCE; private static final Cache $VALUES[]; static { INSTANCE = new EnumSingleton("INSTANCE", 0); $VALUES = (new Cache[] { INSTANCE }); } private Cache(String s, int i){ super(s, i); } // values, valueOf ... }
  • 14.
  • 15. ∀ ) public class Singleton { private static Singleton instance; public synchronized static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
  • 16. ( д ) ?! public class Singleton { // private static class InstanceHolder { private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return InstanceHolder.INSTANCE; } }
  • 17. ..(llil!´Д`lil)n{…?? public class Singleton { private static volatile Singleton instance public static Singleton getInstance() { Singleton result = instance; // (1) if (result == null) { // (2) => synchronized (Singleton.class) { // (3) : result = instance; // (4) if (result == null) { // (5) result = instance = new Singleton(); // (6) } } // : } return result; }
  • 18. getInstnace ” ”
  • 19. Scala object object Cache { def put(key:String, value:Any):Unit = ... def get(key:String):Any = ... } Cache.put(key, value) val value = Cache.get(key)
  • 20. object Singleton public final class Cache$ implements ScalaObject { public static final Cache$ MODULE$ = new Cache$(); private Cache$() { /* ... */ } public void put(String key, Object value) { /* ... */ } public Object get(String key) { /* ... */ } } Cache$.MODULE$.put(key, value) Object value = Cache$.MODULE$.get(key)

Notas do Editor

  1. \n
  2. &amp;#x304B;&amp;#x3068;&amp;#x3046;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x6700;&amp;#x8FD1;&amp;#x5F90;&amp;#x3005;&amp;#x306B;&amp;#x5B9F;&amp;#x4F53;&amp;#x3092;&amp;#x6652;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x3057;&amp;#x3089;&amp;#x306A;&amp;#x3044;&amp;#x4EBA;&amp;#x3044;&amp;#x308B;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x30C0;&amp;#x30A4;&amp;#x3061;&amp;#x3083;&amp;#x3093;&amp;#x306E;&amp;#x4E0A;&amp;#x53F8;&amp;#x3068;&amp;#x3044;&amp;#x3048;&amp;#x3070;&amp;#x308F;&amp;#x304B;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x304B;&amp;#x306D;&amp;#x3002;&amp;#x6280;&amp;#x8853;&amp;#x7684;&amp;#x306A;&amp;#x7A81;&amp;#x304D;&amp;#x4E0A;&amp;#x3052;&amp;#x304C;&amp;#x53B3;&amp;#x3057;&amp;#x3044;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x9811;&amp;#x5F35;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x4E0A;&amp;#x53F8;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;&amp;#x306F;&amp;#x3044;&amp;#x3002;\n&amp;#x6700;&amp;#x8FD1;&amp;#x306F;Scala&amp;#x306E;&amp;#x8A18;&amp;#x4E8B;&amp;#x66F8;&amp;#x304D;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;&amp;#x5165;&amp;#x9580;&amp;#x8005;&amp;#x7528;&amp;#x306E;&amp;#x8A18;&amp;#x4E8B;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x308F;&amp;#x304B;&amp;#x308A;&amp;#x3084;&amp;#x3059;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;java-ja&amp;#x3067;&amp;#x306F;&amp;#x3001;yuroyoro&amp;#x3055;&amp;#x3093;&amp;#x306B;&amp;#x30EC;&amp;#x30D3;&amp;#x30E5;&amp;#x30FC;&amp;#x983C;&amp;#x307F;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;&amp;#x3042;&amp;#x308A;&amp;#x304C;&amp;#x3068;&amp;#x3046;&amp;#x3054;&amp;#x3056;&amp;#x3044;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;\n&amp;#x305D;&amp;#x308C;&amp;#x3068;&amp;#x3001;DDD&amp;#x3082;&amp;#x7D50;&amp;#x69CB;&amp;#x30C7;&amp;#x30A3;&amp;#x30FC;&amp;#x30D7;&amp;#x306B;&amp;#x3084;&amp;#x3063;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x3002;2003&amp;#x5E74;&amp;#x306E;&amp;#x767A;&amp;#x520A;&amp;#x3067;&amp;#x5F85;&amp;#x671B;&amp;#x306E;&amp;#x548C;&amp;#x8A33;&amp;#x304C;&amp;#x3067;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;&amp;#x30D5;&amp;#x30A1;&amp;#x30A6;&amp;#x30E9;&amp;#x30FC;&amp;#x6C0F;&amp;#x3082;&amp;#x30B1;&amp;#x30C3;&amp;#x30C8;&amp;#x30D9;&amp;#x30C3;&amp;#x30AF;&amp;#x6C0F;&amp;#x3082;&amp;#x7D76;&amp;#x8CDB;&amp;#x3002;&amp;#x65E5;&amp;#x672C;&amp;#x3060;&amp;#x3068;&amp;#x548C;&amp;#x7530;&amp;#x3055;&amp;#x3093;&amp;#x7B46;&amp;#x982D;&amp;#x306B;JavaEE&amp;#x52C9;&amp;#x5F37;&amp;#x4F1A;&amp;#x306B;&amp;#x3088;&amp;#x308A;&amp;#x8CA2;&amp;#x732E;&amp;#x304C;&amp;#x5927;&amp;#x304D;&amp;#x3044;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;&amp;#x79C1;&amp;#x3068;&amp;#x30C0;&amp;#x30A4;&amp;#x3061;&amp;#x3083;&amp;#x3093;&amp;#x3067;&amp;#x4E3B;&amp;#x306B;2&amp;#x90E8;&amp;#x306E;\n
  3. &amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x3068;&amp;#x306F;&amp;#x3001;1&amp;#x500B;&amp;#x3057;&amp;#x304B;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x3092;&amp;#x4F5C;&amp;#x3089;&amp;#x306A;&amp;#x3044;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x30D1;&amp;#x30BF;&amp;#x30FC;&amp;#x30F3;&amp;#x3067;&amp;#x3001;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30DE;&amp;#x304C;&amp;#x6CE8;&amp;#x610F;&amp;#x3092;&amp;#x3057;&amp;#x3066;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x3092;1&amp;#x500B;&amp;#x3057;&amp;#x304B;&amp;#x4F5C;&amp;#x308C;&amp;#x306A;&amp;#x3044;&amp;#x3067;&amp;#x306F;&amp;#x306A;&amp;#x304F;&amp;#x3001;&amp;#x305D;&amp;#x308C;&amp;#x3092;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30E0;&amp;#x4E0A;&amp;#x3067;&amp;#x8868;&amp;#x73FE;&amp;#x3059;&amp;#x308B;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x610F;&amp;#x5473;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  4. &amp;#x30D1;&amp;#x30BF;&amp;#x30FC;&amp;#x30F3;&amp;#x3092;&amp;#x5229;&amp;#x7528;&amp;#x3057;&amp;#x306A;&amp;#x3044;&amp;#x3067;&amp;#x81EA;&amp;#x7531;&amp;#x306B;new&amp;#x3055;&amp;#x305B;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x5834;&amp;#x5408;&amp;#x306F;&amp;#x3001;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x6570;&amp;#x3092;&amp;#x5236;&amp;#x5FA1;&amp;#x3067;&amp;#x304D;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x3002;&amp;#x3053;&amp;#x308C;&amp;#x306F;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30DE;&amp;#x304C;&amp;#x9811;&amp;#x5F35;&amp;#x3063;&amp;#x3066;&amp;#x5236;&amp;#x5FA1;&amp;#x3059;&amp;#x308B;&amp;#x306E;&amp;#x3067;&amp;#x306F;&amp;#x306A;&amp;#x304F;&amp;#x3001;&amp;#x3069;&amp;#x306E;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3057;&amp;#x3066;&amp;#x3082;1&amp;#x3064;&amp;#x3060;&amp;#x3051;&amp;#x306B;&amp;#x3059;&amp;#x308B;&amp;#x4ED5;&amp;#x7D44;&amp;#x307F;&amp;#x3092;&amp;#x63D0;&amp;#x4F9B;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x304C;&amp;#x76EE;&amp;#x7684;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  5. &amp;#x4F8B;&amp;#x3048;&amp;#x3070;&amp;#x3001;&amp;#x30AD;&amp;#x30E3;&amp;#x30C3;&amp;#x30B7;&amp;#x30E5;&amp;#x306E;&amp;#x5834;&amp;#x5408;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;\n&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x3092;&amp;#x5B9A;&amp;#x6570;&amp;#x5316;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x30B3;&amp;#x30F3;&amp;#x30B9;&amp;#x30C8;&amp;#x30E9;&amp;#x30AF;&amp;#x30BF;&amp;#x3092;private&amp;#x306B;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x306F;&amp;#x30A4;&amp;#x30FC;&amp;#x30AC;&amp;#x30FC;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x5178;&amp;#x578B;&amp;#x7684;&amp;#x306B;&amp;#x306F;&amp;#x3053;&amp;#x308C;&amp;#x3067;&amp;#x5341;&amp;#x5206;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x5B9A;&amp;#x6570;&amp;#x306F;&amp;#x3069;&amp;#x3053;&amp;#x3067;&amp;#x3082;\n
  6. &amp;#x6B21;&amp;#x306F;&amp;#x3001;getInstance&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x30D5;&amp;#x30A1;&amp;#x30AF;&amp;#x30C8;&amp;#x30EA;&amp;#x30E1;&amp;#x30BD;&amp;#x30C3;&amp;#x30C9;&amp;#x3092;&amp;#x7528;&amp;#x610F;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\nJVM&amp;#x306E;&amp;#x6700;&amp;#x9069;&amp;#x5316;&amp;#x3092;&amp;#x8003;&amp;#x3048;&amp;#x308C;&amp;#x3070;&amp;#x305D;&amp;#x308C;&amp;#x307B;&amp;#x3069;&amp;#x795E;&amp;#x7D4C;&amp;#x8CEA;&amp;#x306B;&amp;#x306A;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3067;&amp;#x306F;&amp;#x306A;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x3053;&amp;#x306E;&amp;#x5834;&amp;#x5408;&amp;#x306E;&amp;#x30E1;&amp;#x30EA;&amp;#x30C3;&amp;#x30C8;&amp;#x306F;&amp;#x3001;API&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x5185;&amp;#x90E8;&amp;#x5B9F;&amp;#x88C5;&amp;#x3092;&amp;#x96A0;&amp;#x853D;&amp;#x3067;&amp;#x304D;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;\n\n
  7. &amp;#xFF1C;&amp;#xFF1C;&amp;#x3082;&amp;#x3046;&amp;#x3072;&amp;#x3068;&amp;#x3064;&amp;#x306E;&amp;#x30E1;&amp;#x30BD;&amp;#x30C3;&amp;#x30C9;&amp;#x3092;&amp;#x4ECB;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x306B;&amp;#x3088;&amp;#x308B;&amp;#x30E1;&amp;#x30EA;&amp;#x30C3;&amp;#x30C8;&amp;#xFF1E;&amp;#xFF1E;\n&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x306F;&amp;#x300C;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x306E;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x304C;1&amp;#x3064;&amp;#x3057;&amp;#x304B;&amp;#x751F;&amp;#x6210;&amp;#x3055;&amp;#x308C;&amp;#x306A;&amp;#x3044;&amp;#x300D;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x610F;&amp;#x5473;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;\n&amp;#x305D;&amp;#x306E;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x306E;&amp;#x30B3;&amp;#x30F3;&amp;#x30C6;&amp;#x30AD;&amp;#x30B9;&amp;#x30C8;\n&amp;#x3042;&amp;#x308B;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x306E;&amp;#x300C;&amp;#x7279;&amp;#x5B9A;&amp;#x306E;&amp;#x300D;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x304C;1&amp;#x3064;&amp;#x3057;&amp;#x304B;&amp;#x751F;&amp;#x6210;&amp;#x3055;&amp;#x308C;&amp;#x306A;&amp;#x3044;&amp;#x3001;&amp;#x89E3;&amp;#x91C8;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x304C;&amp;#x3067;&amp;#x304D;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x305F;&amp;#x3068;&amp;#x3048;&amp;#x3070;&amp;#x3001;&amp;#x9045;&amp;#x5EF6;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3084;&amp;#x3001;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x3092;&amp;#x30B9;&amp;#x30EC;&amp;#x30C3;&amp;#x30C9;&amp;#x6BCE;&amp;#x306B;&amp;#x4F5C;&amp;#x308B;&amp;#x306A;&amp;#x3069;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x3053;&amp;#x306E;&amp;#x4F8B;&amp;#x3067;&amp;#x306F;&amp;#x3001; getInstance&amp;#x3092;&amp;#x547C;&amp;#x3073;&amp;#x51FA;&amp;#x3057;&amp;#x305F;&amp;#x30B9;&amp;#x30EC;&amp;#x30C3;&amp;#x30C9;&amp;#x3054;&amp;#x3068;&amp;#x306B;&amp;#x552F;&amp;#x4E00;&amp;#x306E;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x3092;&amp;#x8FD4;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x3002;\n&amp;#x3000;&amp;#x30FB;&amp;#x5185;&amp;#x90E8;&amp;#x306E;&amp;#x5B9F;&amp;#x88C5;&amp;#x3067;&amp;#x306F;ThreadLocal&amp;#x3092;&amp;#x30B5;&amp;#x30D6;&amp;#x30AF;&amp;#x30E9;&amp;#x30C3;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x3057;&amp;#x3066;&amp;#x3001;initValue&amp;#x3067;&amp;#x521D;&amp;#x671F;&amp;#x5024;&amp;#x3092;&amp;#x8FD4;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x3053;&amp;#x306E;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x306F;get&amp;#x304C;&amp;#x30C8;&amp;#x30EA;&amp;#x30AC;&amp;#x30FC;&amp;#x3068;&amp;#x306A;&amp;#x308B;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x5B9F;&amp;#x8CEA;&amp;#x9045;&amp;#x5EF6;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x306E;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  8. &amp;#x30C6;&amp;#x30B9;&amp;#x30C8;&amp;#x5BFE;&amp;#x8C61;&amp;#x304C;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x3068;&amp;#x4F9D;&amp;#x5B58;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x5834;&amp;#x5408;&amp;#x306F;&amp;#x3001;&amp;#x30C6;&amp;#x30B9;&amp;#x30C8;&amp;#x304C;&amp;#x5384;&amp;#x4ECB;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\nCache&amp;#x306E;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x3092;&amp;#x30E2;&amp;#x30C3;&amp;#x30AF;&amp;#x5B9F;&amp;#x88C5;&amp;#x306B;&amp;#x7F6E;&amp;#x304D;&amp;#x63DB;&amp;#x3048;&amp;#x305F;&amp;#x3044;&amp;#x3068;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x3057;&amp;#x304B;&amp;#x3057;&amp;#x3001;private&amp;#x30B3;&amp;#x30F3;&amp;#x30B9;&amp;#x30C8;&amp;#x30E9;&amp;#x30AF;&amp;#x30BF;&amp;#x3060;&amp;#x3068;&amp;#x30B5;&amp;#x30D6;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x5316;&amp;#x3067;&amp;#x304D;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x3002;&amp;#x30B3;&amp;#x30F3;&amp;#x30B9;&amp;#x30C8;&amp;#x30E9;&amp;#x30AF;&amp;#x30BF;&amp;#x3092;protected&amp;#x306B;&amp;#x3059;&amp;#x308B;&amp;#x5834;&amp;#x5408;&amp;#x306F;&amp;#x30B5;&amp;#x30D6;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x5316;&amp;#x3067;&amp;#x304D;&amp;#x307E;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x305D;&amp;#x308C;&amp;#x3060;&amp;#x3051;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x3092;&amp;#x5236;&amp;#x9650;&amp;#x3067;&amp;#x304D;&amp;#x306A;&amp;#x3044;&amp;#x30EA;&amp;#x30B9;&amp;#x30AF;&amp;#x304C;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x30C8;&amp;#x30EC;&amp;#x30FC;&amp;#x30C9;&amp;#x30AA;&amp;#x30D5;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;\n&amp;#x3082;&amp;#x3046;&amp;#x4E00;&amp;#x3064;&amp;#x65B9;&amp;#x6CD5;&amp;#x306F;&amp;#x3001;Cache&amp;#x306E;&amp;#x632F;&amp;#x308B;&amp;#x821E;&amp;#x3044;&amp;#x3092;&amp;#x30A4;&amp;#x30F3;&amp;#x30BF;&amp;#x30FC;&amp;#x30D5;&amp;#x30A7;&amp;#x30A4;&amp;#x30B9;&amp;#x3092;&amp;#x5B9A;&amp;#x7FA9;&amp;#x3057;&amp;#x3001;&amp;#x305D;&amp;#x308C;&amp;#x306E;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x5B9F;&amp;#x88C5;&amp;#x3068;&amp;#x3001;&amp;#x30E2;&amp;#x30C3;&amp;#x30AF;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x306E;&amp;#x5B9F;&amp;#x88C5;&amp;#x3092;&amp;#x30C6;&amp;#x30B9;&amp;#x30C8;&amp;#x306E;&amp;#x3068;&amp;#x304D;&amp;#x306B;&amp;#x4F7F;&amp;#x3044;&amp;#x5206;&amp;#x3051;&amp;#x308B;&amp;#x65B9;&amp;#x6CD5;&amp;#x304C;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  9. &amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x306B;&amp;#x3082;&amp;#x30A4;&amp;#x30F3;&amp;#x30BF;&amp;#x30FC;&amp;#x30D5;&amp;#x30A7;&amp;#x30A4;&amp;#x30B9;&amp;#x3092;&amp;#x7528;&amp;#x610F;&amp;#x3059;&amp;#x308C;&amp;#x3070;&amp;#x3001;&amp;#x30AF;&amp;#x30E9;&amp;#x30A4;&amp;#x30A2;&amp;#x30F3;&amp;#x30C8;&amp;#x306B;&amp;#x5BFE;&amp;#x3057;&amp;#x3066;JMock&amp;#x3068;&amp;#x304B;&amp;#x3067;&amp;#x30E2;&amp;#x30C3;&amp;#x30AF;&amp;#x5316;&amp;#x3059;&amp;#x308B;&amp;#x306A;&amp;#x308A;&amp;#x3001;&amp;#x30C0;&amp;#x30DF;&amp;#x30FC;&amp;#x306E;&amp;#x30E2;&amp;#x30C3;&amp;#x30AF;&amp;#x5B9F;&amp;#x88C5;&amp;#x3092;&amp;#x4F5C;&amp;#x308A;&amp;#x306A;&amp;#x308A;&amp;#x304C;&amp;#x3067;&amp;#x304D;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x3053;&amp;#x308C;&amp;#x3067;&amp;#x3082;&amp;#x3001;Cache&amp;#x578B;&amp;#x3092;&amp;#x4F7F;&amp;#x3046;&amp;#x9650;&amp;#x308A;&amp;#x7F6E;&amp;#x3044;&amp;#x3066;&amp;#x306F;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x306E;&amp;#x6570;&amp;#x306E;&amp;#x7BA1;&amp;#x7406;&amp;#x304C;&amp;#x7D50;&amp;#x69CB;&amp;#x96E3;&amp;#x3057;&amp;#x3044;&amp;#x5370;&amp;#x8C61;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  10. &amp;#x6271;&amp;#x3044;&amp;#x65B9;&amp;#x6B21;&amp;#x7B2C;&amp;#x3067;&amp;#x30B0;&amp;#x30ED;&amp;#x30FC;&amp;#x30D0;&amp;#x30EB;&amp;#x5909;&amp;#x6570;&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x3057;&amp;#x307E;&amp;#x3046;&amp;#x3002;\n&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x306F;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x306E;&amp;#x4E2D;&amp;#x306E;&amp;#x3069;&amp;#x3053;&amp;#x304B;&amp;#x3089;&amp;#x3067;&amp;#x3082;&amp;#x540C;&amp;#x4E00;&amp;#x306E;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x306B;&amp;#x30A2;&amp;#x30AF;&amp;#x30BB;&amp;#x30B9;&amp;#x3067;&amp;#x304D;&amp;#x308B;&amp;#x304B;&amp;#x3089;&amp;#x3002;\n\n\n
  11. readObject&amp;#x30E1;&amp;#x30BD;&amp;#x30C3;&amp;#x30C9;&amp;#x306F;&amp;#x65B0;&amp;#x305F;&amp;#x306B;&amp;#x751F;&amp;#x6210;&amp;#x3055;&amp;#x308C;&amp;#x305F;&amp;#x30AA;&amp;#x30D6;&amp;#x30B8;&amp;#x30A7;&amp;#x30AF;&amp;#x30C8;&amp;#x3092;&amp;#x8FD4;&amp;#x3059;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x30C7;&amp;#x30B7;&amp;#x30EA;&amp;#x30A2;&amp;#x30E9;&amp;#x30A4;&amp;#x30BA;&amp;#x3059;&amp;#x308B;&amp;#x3068;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x7834;&amp;#x7DBB;&amp;#x3059;&amp;#x308B;&amp;#x3093;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;\n
  12. Java5&amp;#x4EE5;&amp;#x964D;&amp;#x3067;&amp;#x3042;&amp;#x308C;&amp;#x3070;&amp;#x3001;enum&amp;#x306B;&amp;#x4F7F;&amp;#x3048;&amp;#x3070;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x306B;&amp;#x3067;&amp;#x304D;&amp;#x3066;&amp;#x3001;&amp;#x5148;&amp;#x307B;&amp;#x3069;&amp;#x306E;&amp;#x30B7;&amp;#x30EA;&amp;#x30A2;&amp;#x30E9;&amp;#x30A4;&amp;#x30BA;&amp;#x304C;&amp;#x7D61;&amp;#x3093;&amp;#x3067;&amp;#x3082;&amp;#x552F;&amp;#x4E00;&amp;#x7121;&amp;#x4E8C;&amp;#x306E;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x304C;&amp;#x4FDD;&amp;#x8A3C;&amp;#x3055;&amp;#x308C;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x30B7;&amp;#x30EA;&amp;#x30A2;&amp;#x30E9;&amp;#x30A4;&amp;#x30BA;&amp;#x3092;&amp;#x5FF5;&amp;#x982D;&amp;#x306B;&amp;#x7F6E;&amp;#x304F;&amp;#x306A;&amp;#x3089;enum&amp;#x304C;&amp;#x4E00;&amp;#x756A;&amp;#x5B89;&amp;#x5168;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x5BA3;&amp;#x8A00;&amp;#x3055;&amp;#x308C;&amp;#x305F;&amp;#x5B9A;&amp;#x6570;&amp;#x4EE5;&amp;#x5916;&amp;#x306B;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x304C;&amp;#x306A;&amp;#x3044;&amp;#x3053;&amp;#x3068;&amp;#x3092;JVM&amp;#x304C;&amp;#x4FDD;&amp;#x8A3C;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\nEffiective Java &amp;#x7B2C;&amp;#x4E8C;&amp;#x7248; &amp;#x9805;&amp;#x76EE;77 &amp;#x300C;&amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x5236;&amp;#x5FA1;&amp;#x306B;&amp;#x5BFE;&amp;#x3057;&amp;#x3066;&amp;#x306F;readResolve&amp;#x3088;&amp;#x308A;enum&amp;#x578B;&amp;#x3092;&amp;#x9078;&amp;#x3076;&amp;#x300D;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  13. &amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;Enum&amp;#x306F;Serializable&amp;#x3092;&amp;#x5B9F;&amp;#x88C5;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x3066;\n
  14. \n
  15. &amp;#x9045;&amp;#x5EF6;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3059;&amp;#x308B;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x306E;&amp;#x5178;&amp;#x578B;&amp;#x7684;&amp;#x306A;&amp;#x4F8B;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x6700;&amp;#x521D;&amp;#x306E;getInstance&amp;#x30E1;&amp;#x30BD;&amp;#x30C3;&amp;#x30C9;&amp;#x306E;&amp;#x547C;&amp;#x3073;&amp;#x51FA;&amp;#x3057;&amp;#x3067;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3055;&amp;#x308C;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x8907;&amp;#x6570;&amp;#x30B9;&amp;#x30EC;&amp;#x30C3;&amp;#x30C9;&amp;#x3067;&amp;#x3053;&amp;#x306E;&amp;#x30E1;&amp;#x30BD;&amp;#x30C3;&amp;#x30C9;&amp;#x3092;&amp;#x547C;&amp;#x3073;&amp;#x51FA;&amp;#x3057;&amp;#x305F;&amp;#x969B;&amp;#x306B;&amp;#x3001;&amp;#x8907;&amp;#x6570;&amp;#x56DE;&amp;#x306E;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x304C;&amp;#x884C;&amp;#x308F;&amp;#x308C;&amp;#x308B;&amp;#x306E;&amp;#x3092;&amp;#x9632;&amp;#x3050;&amp;#x305F;&amp;#x3081;&amp;#x3068;&amp;#x3001;&amp;#x4ED6;&amp;#x306E;&amp;#x30B9;&amp;#x30EC;&amp;#x30C3;&amp;#x30C9;&amp;#x306B;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x6E08;&amp;#x307F;&amp;#x3067;&amp;#x3042;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3092;&amp;#x4F1D;&amp;#x3048;&amp;#x308B;&amp;#x305F;&amp;#x3081;&amp;#x306B;&amp;#x3001;&amp;#x56FA;&amp;#x6709;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x3092;&amp;#x304B;&amp;#x3051;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  16. &amp;#x30A4;&amp;#x30F3;&amp;#x30B9;&amp;#x30BF;&amp;#x30F3;&amp;#x30B9;&amp;#x306E;&amp;#x30D5;&amp;#x30A3;&amp;#x30FC;&amp;#x30EB;&amp;#x30C9;&amp;#x3092;&amp;#x5185;&amp;#x90E8;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x306B;&amp;#x6301;&amp;#x3064;&amp;#x30D1;&amp;#x30BF;&amp;#x30FC;&amp;#x30F3;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n&amp;#x9045;&amp;#x5EF6;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x30DB;&amp;#x30EB;&amp;#x30C0;&amp;#x30FC;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x30A4;&amp;#x30C7;&amp;#x30AA;&amp;#x30E0;&amp;#x3068;&amp;#x304B;&amp;#x3044;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\ngetInstance&amp;#x30E1;&amp;#x30BD;&amp;#x30C3;&amp;#x30C9;&amp;#x304C;&amp;#x521D;&amp;#x3081;&amp;#x3066;&amp;#x547C;&amp;#x3073;&amp;#x51FA;&amp;#x3055;&amp;#x308C;&amp;#x305F;&amp;#x6642;&amp;#x306B;&amp;#x3001;&amp;#x521D;&amp;#x3081;&amp;#x3066;InstanceHolder.INSTANCE&amp;#x3092;&amp;#x8AAD;&amp;#x307F;&amp;#x51FA;&amp;#x3057;&amp;#x3001;&amp;#x305D;&amp;#x308C;&amp;#x306B;&amp;#x3088;&amp;#x308A;InstanceHolder&amp;#x304C;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3055;&amp;#x308C;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x3053;&amp;#x306E;&amp;#x30A4;&amp;#x30C7;&amp;#x30AA;&amp;#x30E0;&amp;#x306E;&amp;#x7F8E;&amp;#x3057;&amp;#x3055;&amp;#x306F;&amp;#x3001;getInstance&amp;#x30E1;&amp;#x30BD;&amp;#x30C3;&amp;#x30C9;&amp;#x306F;&amp;#x540C;&amp;#x671F;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x304A;&amp;#x3089;&amp;#x305A;&amp;#x3001;&amp;#x30D5;&amp;#x30A3;&amp;#x30FC;&amp;#x30EB;&amp;#x30C9;&amp;#x30A2;&amp;#x30AF;&amp;#x30BB;&amp;#x30B9;&amp;#x3060;&amp;#x3051;&amp;#x3092;&amp;#x884C;&amp;#x3046;&amp;#x3053;&amp;#x3068;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x3057;&amp;#x305F;&amp;#x304C;&amp;#x3063;&amp;#x3066;&amp;#x3001;&amp;#x9045;&amp;#x5EF6;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3067;&amp;#x306F;&amp;#x30A2;&amp;#x30AF;&amp;#x30BB;&amp;#x30B9;&amp;#x306E;&amp;#x30B3;&amp;#x30B9;&amp;#x30C8;&amp;#x304C;&amp;#x5B9F;&amp;#x8CEA;&amp;#x7684;&amp;#x306B;&amp;#x5897;&amp;#x3048;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x3002;\n&amp;#x6700;&amp;#x65B0;&amp;#x306E;JVM&amp;#x306F;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x3092;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3059;&amp;#x308B;&amp;#x305F;&amp;#x3081;&amp;#x3060;&amp;#x3051;&amp;#x306B;&amp;#x30D5;&amp;#x30A3;&amp;#x30FC;&amp;#x30EB;&amp;#x30C9;&amp;#x3078;&amp;#x306E;&amp;#x30A2;&amp;#x30AF;&amp;#x30BB;&amp;#x30B9;&amp;#x3092;&amp;#x540C;&amp;#x671F;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x4E00;&amp;#x65E6;&amp;#x3001;&amp;#x30AF;&amp;#x30E9;&amp;#x30B9;&amp;#x304C;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3055;&amp;#x308C;&amp;#x308C;&amp;#x3070;&amp;#x3001;&amp;#x305D;&amp;#x306E;&amp;#x5F8C;&amp;#x306E;&amp;#x30D5;&amp;#x30A3;&amp;#x30FC;&amp;#x30EB;&amp;#x30C9;&amp;#x3078;&amp;#x306E;&amp;#x30A2;&amp;#x30AF;&amp;#x30BB;&amp;#x30B9;&amp;#x306B;&amp;#x4F55;&amp;#x3089;&amp;#x304B;&amp;#x306E;&amp;#x691C;&amp;#x67FB;&amp;#x3084;&amp;#x540C;&amp;#x671F;&amp;#x304C;&amp;#x304B;&amp;#x304B;&amp;#x308F;&amp;#x3089;&amp;#x306A;&amp;#x3044;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3001;JVM&amp;#x306F;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x4FEE;&amp;#x6B63;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n\n
  17. &amp;#x3053;&amp;#x308C;&amp;#x306F;&amp;#x3053;&amp;#x3053;&amp;#x3067;&amp;#x5168;&amp;#x90E8;&amp;#x8A71;&amp;#x305B;&amp;#x308B;&amp;#x5185;&amp;#x5BB9;&amp;#x3067;&amp;#x306A;&amp;#x3044;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x30C0;&amp;#x30D6;&amp;#x30EB;&amp;#x30C1;&amp;#x30A7;&amp;#x30C3;&amp;#x30AD;&amp;#x30F3;&amp;#x30B0;&amp;#x30ED;&amp;#x30B8;&amp;#x30C3;&amp;#x30AF;&amp;#x306E;&amp;#x30D1;&amp;#x30BF;&amp;#x30FC;&amp;#x30F3;&amp;#x3067;&amp;#x3059;&amp;#x3002;Java1.4&amp;#x3067;&amp;#x306F;&amp;#x6B63;&amp;#x3057;&amp;#x304F;&amp;#x52D5;&amp;#x304D;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x3002;1.5&amp;#x4EE5;&amp;#x964D;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x56FA;&amp;#x6709;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x306B;&amp;#x3088;&amp;#x308B;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x306E;&amp;#x30B3;&amp;#x30B9;&amp;#x30C8;&amp;#x3092;&amp;#x6E1B;&amp;#x3089;&amp;#x3059;&amp;#x306E;&amp;#x304C;&amp;#x76EE;&amp;#x7684;&amp;#x306A;&amp;#x306E;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x306A;&amp;#x306B;&amp;#x3076;&amp;#x3093;&amp;#x3084;&amp;#x3084;&amp;#x3053;&amp;#x3057;&amp;#x3044;&amp;#x3002;&amp;#x3053;&amp;#x3046;&amp;#x3044;&amp;#x3046;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x306F;&amp;#x66F8;&amp;#x304F;&amp;#x3079;&amp;#x304D;&amp;#x3067;&amp;#x306A;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n(1)&amp;#x3067;&amp;#x30E1;&amp;#x30A4;&amp;#x30F3;&amp;#x30E1;&amp;#x30E2;&amp;#x30EA;&amp;#x304B;&amp;#x3089;&amp;#x6700;&amp;#x65B0;&amp;#x306E;&amp;#x5024;&amp;#x3092;&amp;#x53D6;&amp;#x5F97;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n(2)&amp;#x3067;&amp;#x306F;valotile&amp;#x30D5;&amp;#x30A3;&amp;#x30FC;&amp;#x30EB;&amp;#x30C9;&amp;#x3092;&amp;#x30C1;&amp;#x30A7;&amp;#x30C3;&amp;#x30AF;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x306E;&amp;#x3067;(3)&amp;#x3067;&amp;#x56FA;&amp;#x6709;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x3088;&amp;#x308A;&amp;#x30B3;&amp;#x30B9;&amp;#x30C8;&amp;#x304C;&amp;#x4E0B;&amp;#x3055;&amp;#x3052;&amp;#x307E;&amp;#x3059;&amp;#x3002;null&amp;#x306E;&amp;#x5834;&amp;#x5408;&amp;#x306F;(3)&amp;#x3067;&amp;#x56FA;&amp;#x6709;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x3067;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x3092;&amp;#x7372;&amp;#x5F97;&amp;#x3002;\n(3)&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x7372;&amp;#x5F97;&amp;#x5F8C;&amp;#x306F;&amp;#x4ED6;&amp;#x306E;&amp;#x30B9;&amp;#x30EC;&amp;#x30C3;&amp;#x30C9;&amp;#x3067;&amp;#x30A2;&amp;#x30F3;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x524D;&amp;#x306B;&amp;#x767A;&amp;#x751F;&amp;#x3057;&amp;#x305F;&amp;#x5909;&amp;#x66F4;&amp;#x304C;&amp;#x3001;&amp;#x4E8B;&amp;#x524D;&amp;#x767A;&amp;#x751F;(happens-before)&amp;#x306E;&amp;#x4ED5;&amp;#x69D8;&amp;#x3067;&amp;#x6700;&amp;#x65B0;&amp;#x306E;instance&amp;#x304C;&amp;#x898B;&amp;#x3048;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x4ED6;&amp;#x306E;&amp;#x30B9;&amp;#x30EC;&amp;#x30C3;&amp;#x30C9;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;&amp;#x3059;&amp;#x3067;&amp;#x306B;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x6E08;&amp;#x307F;&amp;#x3067;&amp;#x3042;&amp;#x308C;&amp;#x3070;&amp;#x3001;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x3092;&amp;#x89E3;&amp;#x653E;&amp;#x3057;&amp;#x3066;instance&amp;#x3092;&amp;#x8FD4;&amp;#x3059;&amp;#x3002;&amp;#x672A;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x306A;&amp;#x3089;&amp;#x521D;&amp;#x671F;&amp;#x5316;&amp;#x3057;&amp;#x3066;instance&amp;#x3092;&amp;#x8FD4;&amp;#x3059;&amp;#x3002;&amp;#x56FA;&amp;#x6709;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x3092;&amp;#x629C;&amp;#x3051;&amp;#x308B;&amp;#x3068;&amp;#x304D;&amp;#x306B;&amp;#x3053;&amp;#x306E;&amp;#x5909;&amp;#x66F4;&amp;#x306F;&amp;#x30E1;&amp;#x30A4;&amp;#x30F3;&amp;#x30E1;&amp;#x30E2;&amp;#x30EA;&amp;#x306B;&amp;#x4F1D;&amp;#x308F;&amp;#x308A;&amp;#x3001;&amp;#x4ED6;&amp;#x306E;&amp;#x30B9;&amp;#x30EC;&amp;#x30C3;&amp;#x30C9;&amp;#x304B;&amp;#x3089;&amp;#x898B;&amp;#x3048;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x3053;&amp;#x3046;&amp;#x3044;&amp;#x3046;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x306F;&amp;#x7406;&amp;#x89E3;&amp;#x304C;&amp;#x96E3;&amp;#x3057;&amp;#x3044;\n&amp;#x30FB;&amp;#x30E1;&amp;#x30E2;&amp;#x30EA;&amp;#x30E2;&amp;#x30C7;&amp;#x30EB;&amp;#x306B;&amp;#x95A2;&amp;#x4FC2;&amp;#x3059;&amp;#x308B;&amp;#x306E;&amp;#x3067;&amp;#x5384;&amp;#x4ECB;&amp;#x3002;&amp;#x3067;&amp;#x304D;&amp;#x308B;&amp;#x3060;&amp;#x3051;&amp;#x56DE;&amp;#x907F;&amp;#x3057;&amp;#x305F;&amp;#x307B;&amp;#x3046;&amp;#x304C;&amp;#x3044;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  18. \n
  19. \n
  20. Eager&amp;#x306A;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30C8;&amp;#x30F3;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;\n