Suche senden
Hochladen
第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - シングルトンパターン(Java)
•
Als KEY, PDF herunterladen
•
5 gefällt mir
•
2,727 views
潤一 加藤
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 20
Jetzt herunterladen
Empfohlen
5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе
DEVTYPE
3. Объекты, классы и пакеты в Java
3. Объекты, классы и пакеты в Java
DEVTYPE
Слава Бобик «NancyFx для самых маленьких»
Слава Бобик «NancyFx для самых маленьких»
SpbDotNet Community
Droidjam 2019 flutter isolates pdf
Droidjam 2019 flutter isolates pdf
Anvith Bhat
Arc of developer part1
Arc of developer part1
Junpei Wada
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
Java
Java
박 경민
JNI - Java & C in the same project
JNI - Java & C in the same project
Karol Wrótniak
Empfohlen
5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе
DEVTYPE
3. Объекты, классы и пакеты в Java
3. Объекты, классы и пакеты в Java
DEVTYPE
Слава Бобик «NancyFx для самых маленьких»
Слава Бобик «NancyFx для самых маленьких»
SpbDotNet Community
Droidjam 2019 flutter isolates pdf
Droidjam 2019 flutter isolates pdf
Anvith Bhat
Arc of developer part1
Arc of developer part1
Junpei Wada
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
Java
Java
박 경민
JNI - Java & C in the same project
JNI - Java & C in the same project
Karol Wrótniak
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
Thierry Wasylczenko
Java Programming - 06 java file io
Java Programming - 06 java file io
Danairat Thanabodithammachari
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
e-Legion
JNI - Java & C in the same project
JNI - Java & C in the same project
Karol Wrótniak
Java Concurrency Gotchas
Java Concurrency Gotchas
Alex Miller
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
doughellmann
Basic java, java collection Framework and Date Time API
Basic java, java collection Framework and Date Time API
jagriti srivastava
What’s new in C# 6
What’s new in C# 6
Fiyaz Hasan
Nantes Jug - Java 7
Nantes Jug - Java 7
Sébastien Prunier
C# 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...
julien.ponge
Java 7 LavaJUG
Java 7 LavaJUG
julien.ponge
In kor we Trust
In kor we Trust
Saúl Díaz González
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
julien.ponge
Java 7 JUG Summer Camp
Java 7 JUG Summer Camp
julien.ponge
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 Coin
soft-shake.ch
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydney
julien.ponge
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
Simon Su
ikh331-06-distributed-programming
ikh331-06-distributed-programming
Anung Ariwibowo
The uniform interface is 42
The uniform interface is 42
Yevhen Bobrov
第一回Scala会議
第一回Scala会議
潤一 加藤
コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門
潤一 加藤
Weitere ähnliche Inhalte
Was ist angesagt?
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
Thierry Wasylczenko
Java Programming - 06 java file io
Java Programming - 06 java file io
Danairat Thanabodithammachari
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
e-Legion
JNI - Java & C in the same project
JNI - Java & C in the same project
Karol Wrótniak
Java Concurrency Gotchas
Java Concurrency Gotchas
Alex Miller
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
doughellmann
Basic java, java collection Framework and Date Time API
Basic java, java collection Framework and Date Time API
jagriti srivastava
What’s new in C# 6
What’s new in C# 6
Fiyaz Hasan
Nantes Jug - Java 7
Nantes Jug - Java 7
Sébastien Prunier
C# 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...
julien.ponge
Java 7 LavaJUG
Java 7 LavaJUG
julien.ponge
In kor we Trust
In kor we Trust
Saúl Díaz González
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
julien.ponge
Java 7 JUG Summer Camp
Java 7 JUG Summer Camp
julien.ponge
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 Coin
soft-shake.ch
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydney
julien.ponge
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(上)
Simon Su
ikh331-06-distributed-programming
ikh331-06-distributed-programming
Anung Ariwibowo
The uniform interface is 42
The uniform interface is 42
Yevhen Bobrov
Was ist angesagt?
(20)
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
Java Programming - 06 java file io
Java Programming - 06 java file io
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
«Objective-C Runtime в примерах» — Алексей Сторожев, e-Legion
JNI - Java & C in the same project
JNI - Java & C in the same project
Java Concurrency Gotchas
Java Concurrency Gotchas
Hidden 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 API
What’s new in C# 6
What’s new in C# 6
Nantes Jug - Java 7
Nantes Jug - Java 7
C# 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 LavaJUG
Java 7 LavaJUG
In kor we Trust
In kor we Trust
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
Java 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 Coin
Software 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入門(上)
ikh331-06-distributed-programming
ikh331-06-distributed-programming
The uniform interface is 42
The uniform interface is 42
Andere mochten auch
第一回Scala会議
第一回Scala会議
潤一 加藤
コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門
潤一 加藤
Sbt職人のススメ
Sbt職人のススメ
潤一 加藤
Scala with DDD
Scala with DDD
潤一 加藤
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Yasuyuki Sugitani
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤
Kenshin Yamada
Andere mochten auch
(7)
第一回Scala会議
第一回Scala会議
コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門
Sbt職人のススメ
Sbt職人のススメ
Scala with DDD
Scala with DDD
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
Scala/Scrum/DDD 困ったこと50連発ガトリングトーク!!
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤
Ähnlich wie 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - シングルトンパターン(Java)
Java Concurrency Gotchas
Java Concurrency Gotchas
Alex Miller
Javaoneconcurrencygotchas 090610192215 Phpapp02
Javaoneconcurrencygotchas 090610192215 Phpapp02
Tarun Kumar
Concurrency gotchas
Concurrency gotchas
Jitender Jain
Design in the small
Design in the small
Yves Reynhout
Java осень 2012 лекция 2
Java осень 2012 лекция 2
Technopark
Hey Kotlin, How it works?
Hey Kotlin, How it works?
Chang W. Doh
Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요
Chang W. Doh
Groovy Ast Transformations (greach)
Groovy Ast Transformations (greach)
HamletDRC
2020 Droid Knights CustomLint 적용기
2020 Droid Knights CustomLint 적용기
Insung Hwang
Nice to meet Kotlin
Nice to meet Kotlin
Jieyi Wu
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.pdf
kisgstin23
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 JTABLE
Darwin Durand
Workshop Scala
Workshop Scala
Bert Van Vreckem
create a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdf
f3apparelsonline
Scala in practice
Scala in practice
andyrobinson8
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
curwenmichaela
A topology of memory leaks on the JVM
A topology of memory leaks on the JVM
Rafael Winterhalter
OOP Lab Report.docx
OOP Lab Report.docx
ArafatSahinAfridi
AST Transformations at JFokus
AST Transformations at JFokus
HamletDRC
Ähnlich wie 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - シングルトンパターン(Java)
(20)
Java Concurrency Gotchas
Java Concurrency Gotchas
Javaoneconcurrencygotchas 090610192215 Phpapp02
Javaoneconcurrencygotchas 090610192215 Phpapp02
Concurrency gotchas
Concurrency gotchas
Design in the small
Design in the small
Java осень 2012 лекция 2
Java осень 2012 лекция 2
Hey Kotlin, How it works?
Hey Kotlin, How it works?
Kotlin, 어떻게 동작하나요
Kotlin, 어떻게 동작하나요
Groovy Ast Transformations (greach)
Groovy Ast Transformations (greach)
2020 Droid Knights CustomLint 적용기
2020 Droid Knights CustomLint 적용기
Nice 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.pdf
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 JTABLE
Workshop Scala
Workshop Scala
create 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 practice
New 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 JVM
OOP Lab Report.docx
OOP Lab Report.docx
AST Transformations at JFokus
AST Transformations at JFokus
Kürzlich hochgeladen
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Kürzlich hochgeladen
(20)
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - シングルトンパターン(Java)
1.
(Java) @j5ik2o
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)
Hinweis der Redaktion
\n
&#x304B;&#x3068;&#x3046;&#x3067;&#x3059;&#x3002;&#x6700;&#x8FD1;&#x5F90;&#x3005;&#x306B;&#x5B9F;&#x4F53;&#x3092;&#x6652;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;&#x3057;&#x3089;&#x306A;&#x3044;&#x4EBA;&#x3044;&#x308B;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;&#x30C0;&#x30A4;&#x3061;&#x3083;&#x3093;&#x306E;&#x4E0A;&#x53F8;&#x3068;&#x3044;&#x3048;&#x3070;&#x308F;&#x304B;&#x308A;&#x307E;&#x3059;&#x304B;&#x306D;&#x3002;&#x6280;&#x8853;&#x7684;&#x306A;&#x7A81;&#x304D;&#x4E0A;&#x3052;&#x304C;&#x53B3;&#x3057;&#x3044;&#x306E;&#x3067;&#x3001;&#x9811;&#x5F35;&#x3063;&#x3066;&#x3044;&#x308B;&#x4E0A;&#x53F8;&#x3067;&#x3059;&#x306D;&#x3002;&#x306F;&#x3044;&#x3002;\n&#x6700;&#x8FD1;&#x306F;Scala&#x306E;&#x8A18;&#x4E8B;&#x66F8;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;&#x5165;&#x9580;&#x8005;&#x7528;&#x306E;&#x8A18;&#x4E8B;&#x306A;&#x306E;&#x3067;&#x308F;&#x304B;&#x308A;&#x3084;&#x3059;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;java-ja&#x3067;&#x306F;&#x3001;yuroyoro&#x3055;&#x3093;&#x306B;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x983C;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;&#x3042;&#x308A;&#x304C;&#x3068;&#x3046;&#x3054;&#x3056;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;\n&#x305D;&#x308C;&#x3068;&#x3001;DDD&#x3082;&#x7D50;&#x69CB;&#x30C7;&#x30A3;&#x30FC;&#x30D7;&#x306B;&#x3084;&#x3063;&#x3066;&#x307E;&#x3059;&#x3002;2003&#x5E74;&#x306E;&#x767A;&#x520A;&#x3067;&#x5F85;&#x671B;&#x306E;&#x548C;&#x8A33;&#x304C;&#x3067;&#x307E;&#x3057;&#x305F;&#x3002;&#x30D5;&#x30A1;&#x30A6;&#x30E9;&#x30FC;&#x6C0F;&#x3082;&#x30B1;&#x30C3;&#x30C8;&#x30D9;&#x30C3;&#x30AF;&#x6C0F;&#x3082;&#x7D76;&#x8CDB;&#x3002;&#x65E5;&#x672C;&#x3060;&#x3068;&#x548C;&#x7530;&#x3055;&#x3093;&#x7B46;&#x982D;&#x306B;JavaEE&#x52C9;&#x5F37;&#x4F1A;&#x306B;&#x3088;&#x308A;&#x8CA2;&#x732E;&#x304C;&#x5927;&#x304D;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;&#x79C1;&#x3068;&#x30C0;&#x30A4;&#x3061;&#x3083;&#x3093;&#x3067;&#x4E3B;&#x306B;2&#x90E8;&#x306E;\n
&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x3068;&#x306F;&#x3001;1&#x500B;&#x3057;&#x304B;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;&#x4F5C;&#x3089;&#x306A;&#x3044;&#x3068;&#x3044;&#x3046;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x3067;&#x3001;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DE;&#x304C;&#x6CE8;&#x610F;&#x3092;&#x3057;&#x3066;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;1&#x500B;&#x3057;&#x304B;&#x4F5C;&#x308C;&#x306A;&#x3044;&#x3067;&#x306F;&#x306A;&#x304F;&#x3001;&#x305D;&#x308C;&#x3092;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x4E0A;&#x3067;&#x8868;&#x73FE;&#x3059;&#x308B;&#x3068;&#x3044;&#x3046;&#x610F;&#x5473;&#x3067;&#x3059;&#x3002;\n
&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x3092;&#x5229;&#x7528;&#x3057;&#x306A;&#x3044;&#x3067;&#x81EA;&#x7531;&#x306B;new&#x3055;&#x305B;&#x3066;&#x3044;&#x308B;&#x5834;&#x5408;&#x306F;&#x3001;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x6570;&#x3092;&#x5236;&#x5FA1;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#x3002;&#x3053;&#x308C;&#x306F;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DE;&#x304C;&#x9811;&#x5F35;&#x3063;&#x3066;&#x5236;&#x5FA1;&#x3059;&#x308B;&#x306E;&#x3067;&#x306F;&#x306A;&#x304F;&#x3001;&#x3069;&#x306E;&#x3088;&#x3046;&#x306B;&#x3057;&#x3066;&#x3082;1&#x3064;&#x3060;&#x3051;&#x306B;&#x3059;&#x308B;&#x4ED5;&#x7D44;&#x307F;&#x3092;&#x63D0;&#x4F9B;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x76EE;&#x7684;&#x3067;&#x3059;&#x3002;\n
&#x4F8B;&#x3048;&#x3070;&#x3001;&#x30AD;&#x30E3;&#x30C3;&#x30B7;&#x30E5;&#x306E;&#x5834;&#x5408;&#x3067;&#x3059;&#x306D;&#x3002;\n&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;&#x5B9A;&#x6570;&#x5316;&#x3057;&#x3066;&#x3001;&#x30B3;&#x30F3;&#x30B9;&#x30C8;&#x30E9;&#x30AF;&#x30BF;&#x3092;private&#x306B;&#x3057;&#x307E;&#x3059;&#x3002;&#x521D;&#x671F;&#x5316;&#x306F;&#x30A4;&#x30FC;&#x30AC;&#x30FC;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;&#x5178;&#x578B;&#x7684;&#x306B;&#x306F;&#x3053;&#x308C;&#x3067;&#x5341;&#x5206;&#x3067;&#x3059;&#x3002;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x5B9A;&#x6570;&#x306F;&#x3069;&#x3053;&#x3067;&#x3082;\n
&#x6B21;&#x306F;&#x3001;getInstance&#x3068;&#x3044;&#x3046;&#x30D5;&#x30A1;&#x30AF;&#x30C8;&#x30EA;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x3092;&#x7528;&#x610F;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\nJVM&#x306E;&#x6700;&#x9069;&#x5316;&#x3092;&#x8003;&#x3048;&#x308C;&#x3070;&#x305D;&#x308C;&#x307B;&#x3069;&#x795E;&#x7D4C;&#x8CEA;&#x306B;&#x306A;&#x308B;&#x3053;&#x3068;&#x3067;&#x306F;&#x306A;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;&#x3053;&#x306E;&#x5834;&#x5408;&#x306E;&#x30E1;&#x30EA;&#x30C3;&#x30C8;&#x306F;&#x3001;API&#x306B;&#x3088;&#x3063;&#x3066;&#x5185;&#x90E8;&#x5B9F;&#x88C5;&#x3092;&#x96A0;&#x853D;&#x3067;&#x304D;&#x308B;&#x3053;&#x3068;&#x3067;&#x3059;&#x306D;&#x3002;\n\n
&#xFF1C;&#xFF1C;&#x3082;&#x3046;&#x3072;&#x3068;&#x3064;&#x306E;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x3092;&#x4ECB;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3088;&#x308B;&#x30E1;&#x30EA;&#x30C3;&#x30C8;&#xFF1E;&#xFF1E;\n&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x306F;&#x300C;&#x30AF;&#x30E9;&#x30B9;&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x304C;1&#x3064;&#x3057;&#x304B;&#x751F;&#x6210;&#x3055;&#x308C;&#x306A;&#x3044;&#x300D;&#x3068;&#x3044;&#x3046;&#x610F;&#x5473;&#x3067;&#x3059;&#x304C;&#x3001;\n&#x305D;&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x306E;&#x30B3;&#x30F3;&#x30C6;&#x30AD;&#x30B9;&#x30C8;\n&#x3042;&#x308B;&#x30AF;&#x30E9;&#x30B9;&#x306E;&#x300C;&#x7279;&#x5B9A;&#x306E;&#x300D;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x304C;1&#x3064;&#x3057;&#x304B;&#x751F;&#x6210;&#x3055;&#x308C;&#x306A;&#x3044;&#x3001;&#x89E3;&#x91C8;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;\n&#x30FB;&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x9045;&#x5EF6;&#x521D;&#x671F;&#x5316;&#x3084;&#x3001;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x6BCE;&#x306B;&#x4F5C;&#x308B;&#x306A;&#x3069;&#x3067;&#x3059;&#x3002;\n&#x30FB;&#x3053;&#x306E;&#x4F8B;&#x3067;&#x306F;&#x3001; getInstance&#x3092;&#x547C;&#x3073;&#x51FA;&#x3057;&#x305F;&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x3054;&#x3068;&#x306B;&#x552F;&#x4E00;&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;&#x8FD4;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;\n&#x3000;&#x30FB;&#x5185;&#x90E8;&#x306E;&#x5B9F;&#x88C5;&#x3067;&#x306F;ThreadLocal&#x3092;&#x30B5;&#x30D6;&#x30AF;&#x30E9;&#x30C3;&#x30B7;&#x30F3;&#x30B0;&#x3057;&#x3066;&#x3001;initValue&#x3067;&#x521D;&#x671F;&#x5024;&#x3092;&#x8FD4;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;&#x3053;&#x306E;&#x521D;&#x671F;&#x5316;&#x306F;get&#x304C;&#x30C8;&#x30EA;&#x30AC;&#x30FC;&#x3068;&#x306A;&#x308B;&#x306E;&#x3067;&#x3001;&#x5B9F;&#x8CEA;&#x9045;&#x5EF6;&#x521D;&#x671F;&#x5316;&#x306E;&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;\n
&#x30C6;&#x30B9;&#x30C8;&#x5BFE;&#x8C61;&#x304C;&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x3068;&#x4F9D;&#x5B58;&#x3057;&#x3066;&#x3044;&#x308B;&#x5834;&#x5408;&#x306F;&#x3001;&#x30C6;&#x30B9;&#x30C8;&#x304C;&#x5384;&#x4ECB;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;\nCache&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;&#x30E2;&#x30C3;&#x30AF;&#x5B9F;&#x88C5;&#x306B;&#x7F6E;&#x304D;&#x63DB;&#x3048;&#x305F;&#x3044;&#x3068;&#x3057;&#x307E;&#x3059;&#x3002;\n&#x3057;&#x304B;&#x3057;&#x3001;private&#x30B3;&#x30F3;&#x30B9;&#x30C8;&#x30E9;&#x30AF;&#x30BF;&#x3060;&#x3068;&#x30B5;&#x30D6;&#x30AF;&#x30E9;&#x30B9;&#x5316;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#x3002;&#x30B3;&#x30F3;&#x30B9;&#x30C8;&#x30E9;&#x30AF;&#x30BF;&#x3092;protected&#x306B;&#x3059;&#x308B;&#x5834;&#x5408;&#x306F;&#x30B5;&#x30D6;&#x30AF;&#x30E9;&#x30B9;&#x5316;&#x3067;&#x304D;&#x307E;&#x3059;&#x304C;&#x3001;&#x305D;&#x308C;&#x3060;&#x3051;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x3092;&#x5236;&#x9650;&#x3067;&#x304D;&#x306A;&#x3044;&#x30EA;&#x30B9;&#x30AF;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;&#x30C8;&#x30EC;&#x30FC;&#x30C9;&#x30AA;&#x30D5;&#x3067;&#x3059;&#x306D;&#x3002;\n&#x3082;&#x3046;&#x4E00;&#x3064;&#x65B9;&#x6CD5;&#x306F;&#x3001;Cache&#x306E;&#x632F;&#x308B;&#x821E;&#x3044;&#x3092;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30D5;&#x30A7;&#x30A4;&#x30B9;&#x3092;&#x5B9A;&#x7FA9;&#x3057;&#x3001;&#x305D;&#x308C;&#x306E;&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x3068;&#x3057;&#x3066;&#x5B9F;&#x88C5;&#x3068;&#x3001;&#x30E2;&#x30C3;&#x30AF;&#x3068;&#x3057;&#x3066;&#x306E;&#x5B9F;&#x88C5;&#x3092;&#x30C6;&#x30B9;&#x30C8;&#x306E;&#x3068;&#x304D;&#x306B;&#x4F7F;&#x3044;&#x5206;&#x3051;&#x308B;&#x65B9;&#x6CD5;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;\n
&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x306B;&#x3082;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30D5;&#x30A7;&#x30A4;&#x30B9;&#x3092;&#x7528;&#x610F;&#x3059;&#x308C;&#x3070;&#x3001;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x306B;&#x5BFE;&#x3057;&#x3066;JMock&#x3068;&#x304B;&#x3067;&#x30E2;&#x30C3;&#x30AF;&#x5316;&#x3059;&#x308B;&#x306A;&#x308A;&#x3001;&#x30C0;&#x30DF;&#x30FC;&#x306E;&#x30E2;&#x30C3;&#x30AF;&#x5B9F;&#x88C5;&#x3092;&#x4F5C;&#x308A;&#x306A;&#x308A;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;&#x3053;&#x308C;&#x3067;&#x3082;&#x3001;Cache&#x578B;&#x3092;&#x4F7F;&#x3046;&#x9650;&#x308A;&#x7F6E;&#x3044;&#x3066;&#x306F;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x306E;&#x6570;&#x306E;&#x7BA1;&#x7406;&#x304C;&#x7D50;&#x69CB;&#x96E3;&#x3057;&#x3044;&#x5370;&#x8C61;&#x3067;&#x3059;&#x3002;\n
&#x6271;&#x3044;&#x65B9;&#x6B21;&#x7B2C;&#x3067;&#x30B0;&#x30ED;&#x30FC;&#x30D0;&#x30EB;&#x5909;&#x6570;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3046;&#x3002;\n&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x306F;&#x30B3;&#x30FC;&#x30C9;&#x306E;&#x4E2D;&#x306E;&#x3069;&#x3053;&#x304B;&#x3089;&#x3067;&#x3082;&#x540C;&#x4E00;&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x306B;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x3067;&#x304D;&#x308B;&#x304B;&#x3089;&#x3002;\n\n\n
readObject&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x306F;&#x65B0;&#x305F;&#x306B;&#x751F;&#x6210;&#x3055;&#x308C;&#x305F;&#x30AA;&#x30D6;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x3092;&#x8FD4;&#x3059;&#x306E;&#x3067;&#x3001;&#x30C7;&#x30B7;&#x30EA;&#x30A2;&#x30E9;&#x30A4;&#x30BA;&#x3059;&#x308B;&#x3068;&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x3068;&#x3057;&#x3066;&#x7834;&#x7DBB;&#x3059;&#x308B;&#x3093;&#x3067;&#x3059;&#x306D;&#x3002;\n
Java5&#x4EE5;&#x964D;&#x3067;&#x3042;&#x308C;&#x3070;&#x3001;enum&#x306B;&#x4F7F;&#x3048;&#x3070;&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x306B;&#x3067;&#x304D;&#x3066;&#x3001;&#x5148;&#x307B;&#x3069;&#x306E;&#x30B7;&#x30EA;&#x30A2;&#x30E9;&#x30A4;&#x30BA;&#x304C;&#x7D61;&#x3093;&#x3067;&#x3082;&#x552F;&#x4E00;&#x7121;&#x4E8C;&#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x304C;&#x4FDD;&#x8A3C;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x30B7;&#x30EA;&#x30A2;&#x30E9;&#x30A4;&#x30BA;&#x3092;&#x5FF5;&#x982D;&#x306B;&#x7F6E;&#x304F;&#x306A;&#x3089;enum&#x304C;&#x4E00;&#x756A;&#x5B89;&#x5168;&#x3067;&#x3059;&#x3002;&#x5BA3;&#x8A00;&#x3055;&#x308C;&#x305F;&#x5B9A;&#x6570;&#x4EE5;&#x5916;&#x306B;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x304C;&#x306A;&#x3044;&#x3053;&#x3068;&#x3092;JVM&#x304C;&#x4FDD;&#x8A3C;&#x3057;&#x307E;&#x3059;&#x3002;\nEffiective Java &#x7B2C;&#x4E8C;&#x7248; &#x9805;&#x76EE;77 &#x300C;&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x5236;&#x5FA1;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x306F;readResolve&#x3088;&#x308A;enum&#x578B;&#x3092;&#x9078;&#x3076;&#x300D;&#x3067;&#x3059;&#x3002;\n
&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x3067;&#x3059;&#x306D;&#x3002;Enum&#x306F;Serializable&#x3092;&#x5B9F;&#x88C5;&#x3057;&#x3066;&#x3044;&#x3066;\n
\n
&#x9045;&#x5EF6;&#x521D;&#x671F;&#x5316;&#x3059;&#x308B;&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x306E;&#x5178;&#x578B;&#x7684;&#x306A;&#x4F8B;&#x3067;&#x3059;&#x3002;&#x6700;&#x521D;&#x306E;getInstance&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x306E;&#x547C;&#x3073;&#x51FA;&#x3057;&#x3067;&#x521D;&#x671F;&#x5316;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;&#x8907;&#x6570;&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x3067;&#x3053;&#x306E;&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x3092;&#x547C;&#x3073;&#x51FA;&#x3057;&#x305F;&#x969B;&#x306B;&#x3001;&#x8907;&#x6570;&#x56DE;&#x306E;&#x521D;&#x671F;&#x5316;&#x304C;&#x884C;&#x308F;&#x308C;&#x308B;&#x306E;&#x3092;&#x9632;&#x3050;&#x305F;&#x3081;&#x3068;&#x3001;&#x4ED6;&#x306E;&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x306B;&#x521D;&#x671F;&#x5316;&#x6E08;&#x307F;&#x3067;&#x3042;&#x308B;&#x3053;&#x3068;&#x3092;&#x4F1D;&#x3048;&#x308B;&#x305F;&#x3081;&#x306B;&#x3001;&#x56FA;&#x6709;&#x30ED;&#x30C3;&#x30AF;&#x3092;&#x304B;&#x3051;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n
&#x30A4;&#x30F3;&#x30B9;&#x30BF;&#x30F3;&#x30B9;&#x306E;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x3092;&#x5185;&#x90E8;&#x30AF;&#x30E9;&#x30B9;&#x306B;&#x6301;&#x3064;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x3067;&#x3059;&#x3002;\n&#x9045;&#x5EF6;&#x521D;&#x671F;&#x5316;&#x30DB;&#x30EB;&#x30C0;&#x30FC;&#x30AF;&#x30E9;&#x30B9;&#x30A4;&#x30C7;&#x30AA;&#x30E0;&#x3068;&#x304B;&#x3044;&#x3044;&#x307E;&#x3059;&#x3002;\ngetInstance&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x304C;&#x521D;&#x3081;&#x3066;&#x547C;&#x3073;&#x51FA;&#x3055;&#x308C;&#x305F;&#x6642;&#x306B;&#x3001;&#x521D;&#x3081;&#x3066;InstanceHolder.INSTANCE&#x3092;&#x8AAD;&#x307F;&#x51FA;&#x3057;&#x3001;&#x305D;&#x308C;&#x306B;&#x3088;&#x308A;InstanceHolder&#x304C;&#x521D;&#x671F;&#x5316;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;\n&#x3053;&#x306E;&#x30A4;&#x30C7;&#x30AA;&#x30E0;&#x306E;&#x7F8E;&#x3057;&#x3055;&#x306F;&#x3001;getInstance&#x30E1;&#x30BD;&#x30C3;&#x30C9;&#x306F;&#x540C;&#x671F;&#x3055;&#x308C;&#x3066;&#x304A;&#x3089;&#x305A;&#x3001;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x3060;&#x3051;&#x3092;&#x884C;&#x3046;&#x3053;&#x3068;&#x3067;&#x3059;&#x3002;&#x3057;&#x305F;&#x304C;&#x3063;&#x3066;&#x3001;&#x9045;&#x5EF6;&#x521D;&#x671F;&#x5316;&#x3067;&#x306F;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x306E;&#x30B3;&#x30B9;&#x30C8;&#x304C;&#x5B9F;&#x8CEA;&#x7684;&#x306B;&#x5897;&#x3048;&#x307E;&#x305B;&#x3093;&#x3002;\n&#x6700;&#x65B0;&#x306E;JVM&#x306F;&#x30AF;&#x30E9;&#x30B9;&#x3092;&#x521D;&#x671F;&#x5316;&#x3059;&#x308B;&#x305F;&#x3081;&#x3060;&#x3051;&#x306B;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x3078;&#x306E;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x3092;&#x540C;&#x671F;&#x3057;&#x307E;&#x3059;&#x3002;&#x4E00;&#x65E6;&#x3001;&#x30AF;&#x30E9;&#x30B9;&#x304C;&#x521D;&#x671F;&#x5316;&#x3055;&#x308C;&#x308C;&#x3070;&#x3001;&#x305D;&#x306E;&#x5F8C;&#x306E;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x3078;&#x306E;&#x30A2;&#x30AF;&#x30BB;&#x30B9;&#x306B;&#x4F55;&#x3089;&#x304B;&#x306E;&#x691C;&#x67FB;&#x3084;&#x540C;&#x671F;&#x304C;&#x304B;&#x304B;&#x308F;&#x3089;&#x306A;&#x3044;&#x3088;&#x3046;&#x306B;&#x3001;JVM&#x306F;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x4FEE;&#x6B63;&#x3057;&#x307E;&#x3059;&#x3002;\n\n
&#x3053;&#x308C;&#x306F;&#x3053;&#x3053;&#x3067;&#x5168;&#x90E8;&#x8A71;&#x305B;&#x308B;&#x5185;&#x5BB9;&#x3067;&#x306A;&#x3044;&#x3067;&#x3059;&#x304C;&#x3001;&#x30C0;&#x30D6;&#x30EB;&#x30C1;&#x30A7;&#x30C3;&#x30AD;&#x30F3;&#x30B0;&#x30ED;&#x30B8;&#x30C3;&#x30AF;&#x306E;&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x3067;&#x3059;&#x3002;Java1.4&#x3067;&#x306F;&#x6B63;&#x3057;&#x304F;&#x52D5;&#x304D;&#x307E;&#x305B;&#x3093;&#x3002;1.5&#x4EE5;&#x964D;&#x3067;&#x3059;&#x3002;&#x56FA;&#x6709;&#x30ED;&#x30C3;&#x30AF;&#x306B;&#x3088;&#x308B;&#x30ED;&#x30C3;&#x30AF;&#x306E;&#x30B3;&#x30B9;&#x30C8;&#x3092;&#x6E1B;&#x3089;&#x3059;&#x306E;&#x304C;&#x76EE;&#x7684;&#x306A;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x306A;&#x306B;&#x3076;&#x3093;&#x3084;&#x3084;&#x3053;&#x3057;&#x3044;&#x3002;&#x3053;&#x3046;&#x3044;&#x3046;&#x30B3;&#x30FC;&#x30C9;&#x306F;&#x66F8;&#x304F;&#x3079;&#x304D;&#x3067;&#x306A;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;\n(1)&#x3067;&#x30E1;&#x30A4;&#x30F3;&#x30E1;&#x30E2;&#x30EA;&#x304B;&#x3089;&#x6700;&#x65B0;&#x306E;&#x5024;&#x3092;&#x53D6;&#x5F97;&#x3057;&#x307E;&#x3059;&#x3002;\n(2)&#x3067;&#x306F;valotile&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x3092;&#x30C1;&#x30A7;&#x30C3;&#x30AF;&#x3057;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;(3)&#x3067;&#x56FA;&#x6709;&#x30ED;&#x30C3;&#x30AF;&#x3088;&#x308A;&#x30B3;&#x30B9;&#x30C8;&#x304C;&#x4E0B;&#x3055;&#x3052;&#x307E;&#x3059;&#x3002;null&#x306E;&#x5834;&#x5408;&#x306F;(3)&#x3067;&#x56FA;&#x6709;&#x30ED;&#x30C3;&#x30AF;&#x3067;&#x30ED;&#x30C3;&#x30AF;&#x3092;&#x7372;&#x5F97;&#x3002;\n(3)&#x30ED;&#x30C3;&#x30AF;&#x7372;&#x5F97;&#x5F8C;&#x306F;&#x4ED6;&#x306E;&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x3067;&#x30A2;&#x30F3;&#x30ED;&#x30C3;&#x30AF;&#x524D;&#x306B;&#x767A;&#x751F;&#x3057;&#x305F;&#x5909;&#x66F4;&#x304C;&#x3001;&#x4E8B;&#x524D;&#x767A;&#x751F;(happens-before)&#x306E;&#x4ED5;&#x69D8;&#x3067;&#x6700;&#x65B0;&#x306E;instance&#x304C;&#x898B;&#x3048;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x4ED6;&#x306E;&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;&#x3059;&#x3067;&#x306B;&#x521D;&#x671F;&#x5316;&#x6E08;&#x307F;&#x3067;&#x3042;&#x308C;&#x3070;&#x3001;&#x30ED;&#x30C3;&#x30AF;&#x3092;&#x89E3;&#x653E;&#x3057;&#x3066;instance&#x3092;&#x8FD4;&#x3059;&#x3002;&#x672A;&#x521D;&#x671F;&#x5316;&#x306A;&#x3089;&#x521D;&#x671F;&#x5316;&#x3057;&#x3066;instance&#x3092;&#x8FD4;&#x3059;&#x3002;&#x56FA;&#x6709;&#x30ED;&#x30C3;&#x30AF;&#x3092;&#x629C;&#x3051;&#x308B;&#x3068;&#x304D;&#x306B;&#x3053;&#x306E;&#x5909;&#x66F4;&#x306F;&#x30E1;&#x30A4;&#x30F3;&#x30E1;&#x30E2;&#x30EA;&#x306B;&#x4F1D;&#x308F;&#x308A;&#x3001;&#x4ED6;&#x306E;&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x304B;&#x3089;&#x898B;&#x3048;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;\n&#x30FB;&#x3053;&#x3046;&#x3044;&#x3046;&#x30B3;&#x30FC;&#x30C9;&#x306F;&#x7406;&#x89E3;&#x304C;&#x96E3;&#x3057;&#x3044;\n&#x30FB;&#x30E1;&#x30E2;&#x30EA;&#x30E2;&#x30C7;&#x30EB;&#x306B;&#x95A2;&#x4FC2;&#x3059;&#x308B;&#x306E;&#x3067;&#x5384;&#x4ECB;&#x3002;&#x3067;&#x304D;&#x308B;&#x3060;&#x3051;&#x56DE;&#x907F;&#x3057;&#x305F;&#x307B;&#x3046;&#x304C;&#x3044;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;\n
\n
\n
Eager&#x306A;&#x30B7;&#x30F3;&#x30B0;&#x30EB;&#x30C8;&#x30F3;&#x3067;&#x3059;&#x306D;&#x3002;\n
Jetzt herunterladen