?????????????OpenJDK????Hotspot???????????C??C++д???????????????????????????OLE(?????????????)Java??????????????????????????OpenJDK??????????????????????????????????????????C/C++???????????????????????η?????????HotSpot repo??vm/memory/universe.cpp??????????????????——http://hg.openjdk.java.net/jdk6/jdk6/hotspot/raw-file/a541ca8fa0e3/src/share/vm/memory/universe.cpp [10]:

Universe::initialize_heap()
if (UseParallelGC) {
#ifndef SERIALGC
Universe::_collectedHeap = new ParallelScavengeHeap();
#else // SERIALGC
fatal("UseParallelGC not supported in this VM.");
#endif // SERIALGC
} else if (UseG1GC) {
#ifndef SERIALGC
G1CollectorPolicy* g1p = new G1CollectorPolicy();
G1CollectedHeap* g1h = new G1CollectedHeap(g1p);
Universe::_collectedHeap = g1h;
#else // SERIALGC
fatal("UseG1GC not supported in java kernel vm.");
#endif // SERIALGC
} else {
GenCollectorPolicy* gc_policy;
if (UseSerialGC) {
gc_policy = new MarkSweepPolicy();
} else if (UseConcMarkSweepGC) {
#ifndef SERIALGC
if (UseAdaptiveSizePolicy) {
gc_policy = new ASConcurrentMarkSweepPolicy();
} else {
gc_policy = new ConcurrentMarkSweepPolicy();
}
#else // SERIALGC
fatal("UseConcMarkSweepGC not supported in this VM.");
#endif // SERIALGC
} else { // default old generation
gc_policy = new MarkSweepPolicy();
}
Universe::_collectedHeap = new GenCollectedHeap(gc_policy);
?????????????????????ο????????????????????????????????
????????????????п??????????????????????????????????????????????HotSpot?????????????????GC??GenCollector????????Serial GC??????GC??????Parallel GC??????GC????????????????У??????????GC????????????????????????GC???????????????磬??UseAdaptiveSizePolicy???????????????Asynchronous Concurrent Mark and Sweep???????Use Serial GC??Use Concurrent Mark Sweep GC???????????????£?????е?GC??????Mark and Sweep????????????????????????????????????????????????????????????????????????????
????????????????Adopt OpenJDK Intermediate & Advance experiences [11] ????е?Deep Dive Hotspot stuff?????????
?????????????JDK??JRE?????
??????Щ?????????JDK??JRE?????——??Щ?????????Java?????е????????????????????????????????????????????е???????????????????????ο? Adopt OpenJDK Getting Started Kit?? Adopt OpenJDK Intermediate & Advance experiences ?????????????????汾??ο? Adopt OpenJDK home page?????OpenJDK??????л??????????JDK????????????????????????
??????????????????????????Щ???????????????????????????????裩
????$ hg clone http://hg.openjdk.java.net/jdk8/jdk8 jdk8 (a)...OpenJDK8
????????
????$ hg clone http://hg.openjdk.java.net/jdk9/jdk9 jdk9 (a)...OpenJDK9
????$ ./get_sources.sh (b)
????$ bash configure (c)
????$ make clean images (d)
????(??????????Щ???????????????????????????????????)
????????????????????????????
????????????汾?????????OpenJDK???????汾??????
?????????a??????????????′?????????У????get_sources.sh????????????git fetch?????????????git pull????????????????????裨a???????????????????????????????????
????????????????????鰱?????????????????????????
???????裨c??????????????????????????????????JDK??JRE??????????????????????
??????????????????????Щ???????練?????????????????????幤?????JDK/JRE???[????a??????????]??
???????
????· ???Java????&??????????
????· ???Java????????????????
????· ?????????????????OS????????????
????· ????F/OSS?????
????· ????????Java/JVM????????????
????· ?????????????????????????鼮???????????????????γ????????????????
????· ???????
????· ?????????????????磩
????????
???????????Adopt OpenJDK?? Betterrev????????????Щ??????κ???java?й???????????????Adoption Discuss????б??????OpenJDK????????б???????Щ???????????OpenJDK??????????仯??????????κ????????????????github?е?fork repo???????????????????github?з??????Pull Request????