* [??????](#??????) * [1. ?????????](#1-?????????) * [2. Java ??????](#2-java-??????) * [3. ????????](#3-????????) * [4. Java ??](#4-java-??) * [5. ??????](#5-??????) * [6. ???????????](#6-???????????) * [7. ??????](#7-??????) * [???????](#???????) * [1. ????????????????](#1-????????????????) * [1.1 ??????](#11-??????) * [1.2 ?????](#12-?????) * [1.3 ????????](#13-????????) * [1.3.1 ?????](#131-?????) * [1.3.2 ??????](#132-??????) * [1.3.3 ??????](#133-??????) * [1.3.4 ??????](#134-??????) * [1.3 ???????????](#13-???????????) * [1.4 finalize()](#14-finalize) * [2. ?????????](#2-?????????) * [2.1 ??? - ?????](#21-???---?????) * [2.2 ??????](#22-??????) * [2.3 ??? - ??????](#23-???---??????) * [2.4 ????????](#24-????????) * [3. ?????????](#3-?????????) * [3.1 Serial ?????](#31-serial-?????) * [3.2 ParNew ?????](#32-parnew-?????) * [3.3 Parallel Scavenge ?????](#33-parallel-scavenge-?????) * [3.4 Serial Old ?????](#34-serial-old-?????) * [3.5 Parallel Old ?????](#35-parallel-old-?????) * [3.6 CMS ?????](#36-cms-?????) * [3.7 G1 ?????](#37-g1-?????) * [3.8 ?????????????????](#38-?????????????????) * [4. ??????????????](#4-??????????????) * [4.1 ?????? Eden ????](#41-??????-eden-????) * [4.2 ????????????????](#42-????????????????) * [4.3 ??????????????????](#43-??????????????????) * [4.4 ?????????????](#44-?????????????) * [4.5 ????????](#45-????????) * [4.6 Full GC ?????????](#46-full-gc-?????????) * [4.6.1 ???? System.gc()](#461-????-systemgc) * [4.6.2 ??????????](#462-??????????) * [4.6.3 ???????????](#463-???????????) * [4.6.4 JDK 1.7 ?????????????????](#464-jdk-17-?????????????????) * [4.6.5 Concurrent Mode Failure](#465-concurrent-mode-failure) * [????????](#????????) * [1 ???????????](#1-???????????) * [2. ?????????](#2-?????????) * [3. ????????](#3-????????) * [3.1 ????](#31-????) * [3.2 ???](#32-???) * [3.3 ???](#33-???) * [3.4 ????](#34-????) * [3.5 ?????](#35-?????) * [4. ???????](#4-???????) * [4.1 ???????????](#41-???????????) * [4.2 ???????????](#42-???????????) * [4.3 ?????????](#43-?????????) * [JVM ????](#jvm-????) * [GC ???????](#gc-???????) * [GC ????????](#gc-????????) # ?????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/dc695f48-4189-4fc7-b950-ed25f6c80f82.jpg) ?????????????????????????????????? ## 1. ????????? ???????????????????????????????????????? Native ???????????? ## 2. Java ?????? ??? Java ???????????????????????????????????????????????????????????????????????????????????????????????????????? Java ????????????????????? ???????????????????? 1. ???????????????????????????? StackOverflowError ???? 2. ????????????????????????????? OutOfMemoryError ???? ## 3. ???????? ?? Java ????????????????????????????????????????????????? ## 4. Java ?? ?????????????????????? ??????????????????????????????"GC ?? "????????????????????????????????Java ??????????????????????????????????????? Eden ???From Survivor ???To Survivor ??????? ?????????????????? -Xmx ?? -Xms ????????????????????????????????? OutOfMemoryError ???? ## 5. ?????? ????????????????????????????????????????????????????????????????? ?? Java ????????????????????????????????????????????????? OutOfMemoryError ???? ??????????????????????????????????????????????????????????????HotSpot ????????????????????????????????? ## 6. ??????????? ?????????????????????????? ??????Class ??????????????????????????????????????????????????????????? ???????????????? String ??? intern() ????????????????????? ## 7. ?????? ?? JDK 1.4 ????????? NIO ???????????????????Channel??????????Buffer???? I/O ?????????????? Native ????????????????????????????? Java ????? DirectByteBuffer ??????????????????????????????????????????????????????????????? Java ??? Native ???????????????? # ??????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????? Java ???????????? ## 1. ???????????????? ### 1.1 ?????? ???????????????????????????????????????????????? 1???????????????? 1?? ??????? 0 ???????????? ???????????????????????????????????????? 0?????? GC ????????????? ```java objA.instance = objB; objB.instance = objA; ``` ### 1.2 ????? ??? GC Roots ??????????????????????????????????????????????????????? GC Roots ??????????????? 1. ???????????????? 2. ??????????????????????? 3. ??????????????????? 4. ?????????????????? ### 1.3 ???????? ??????????????????????????????????????????????????????????????????????????????????????? #### 1.3.1 ????? ???????????????????????????????????????????? ```java Object obj = new Object(); ``` #### 1.3.2 ?????? ????????????????????????? ```java Object obj = new Object(); SoftReference sf = new SoftReference(obj); obj = null; sf.get(); ``` sf ??? obj ??????????????? sf.get() ??????????????????????????????????????????????????? null?? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? #### 1.3.3 ?????? ????????????????????????????????????????????????????????????????????? ```java Object obj = new Object(); WeakReference wf = new WeakReference(obj); obj = null; wf.get(); wf.isEnQueued(); ``` #### 1.3.4 ?????? ?????????????????????????????????????????????????????????????q??????????????????????????????????????????????????????????????????????????????????????????????? ```java Object obj = new Object(); PhantomReference pf = new PhantomReference(obj); obj=null; pf.get(); pf.isEnQueued(); ``` ### 1.3 ??????????? ?????????????????????????????? ???????????????????????? ?????????????????????????????????????????????????????? 1. ???????????????????????????? Java ??????????????????? 2. ???????? ClassLoader ?????????? 3. ???????? java.lang.Class ??????????ʦ??????????????????ʦ??????????????????? ??????? -Xnoclassgc ?????????????????????? ?????????????????CGLib ?? ByteCode ??????????? JSP ??? OSGo ???????????? ClassLoader ????????????????????????????????????????????? ### 1.4 finalize() ???????????????????????????????? finalize() ???????????????????????????????????????????????????? finalize() ???? C++ ???y??????????????????????????????? try-finally ???????????????????????????????????????????????????????????????????????? ## 2. ????????? ### 2.1 ??? - ????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/a4248c4b-6c1d-4fb8-a557-86da92d3a294.jpg) ?????????????????????????? ???? 1. ?????????????????? 2. ???????????? ??????????????????????? ### 2.2 ?????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/e6b733ad-606d-4028-b3e8-83c3a73a3797.jpg) ????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????? ?????????????????????????????????????????????????????????????????????????????? Eden ??????????? Survior ????????? Eden ??????????? Survivor???????????? Eden ?? Survivor ????????????????????????? Survivor ????????????? Eden ?? Survivor??HotSpot ??????? Eden ?? Survivor ??????????? 8:1?????????????????? 90 %?????????????? 10% ????????????? Survivor ????????????????????????????????????????????????????? ### 2.3 ??? - ?????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/902b83ab-8054-4bd2-898f-9a4a0fe52830.jpg) ??????????????????????????????????????????? ### 2.4 ???????? ??????????????????????????????????????????????????????????????????????????????????????????? ??? Java ??????????????????? 1. ???????????????? 2. ???????????? - ???? ???? ??? - ???? ???? ## 3. ????????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/c625baa0-dde6-449e-93df-c3a67f2f430f.jpg) ?????? HotSpot ??????? 7 ?????????????????????????????????????? ### 3.1 Serial ????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/22fda4ae-4dd5-489d-ab10-9ebfdad22ae0.jpg) ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????? CPU ????????????????????????????????????????????????? ?? Client ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ### 3.2 ParNew ????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/81538cd5-1bcf-4e31-86e5-e198df1e013b.jpg) ???? Serial ????????????? ?? Server ??????????????????????????????????????????????????? Serial ???????????????? CMS ????????????? ???????????????? CPU ???????????????? -XX:ParallelGCThreads ????????????????? ### 3.3 Parallel Scavenge ????? ???????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? CPU ?????????????????????????????? ????????????????????????????????????????????????????????????????????????????? CPU ????????????????????????????????????????????????????? ?????????????????????????????????????????????????????? -XX:MaxGCPauseMillis ???????????????????????? -XX:GCTimeRatio ???????????? 0 ???? 100 ??????????????????????????????????????????????????????????????????????????????????????????????? ????????????? -XX:+UseAdaptiveSizePolicy???????????????????????????????????????????????-Xmn????Eden ?? Survivor ?????????-XX:SurvivorRatio?????????????????????-XX:PretenureSizeThreshold??????????????????????????????????????????????????????????????????????????????????????????????????????? GC ??????????????GC Ergonomics??????????????????????? ParNew ????????????????? ### 3.4 Serial Old ????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/08f32fd3-f736-4a67-81ca-295b2a7972f2.jpg) Serial Old ?? Serial ??????????????????? Client ???????????????????? Server ?????????????????? 1. ?? JDK 1.5 ????????Parallel Old ????????????? Parallel Scavenge ???????????? 2. ??? CMS ????????????????????????? Concurrent Mode Failure ???? ### 3.5 Parallel Old ????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/278fe431-af88-4a95-a895-9c3b80117de3.jpg) ?? Parallel Scavenge ??????????????? ?????????????? CPU ???????????????????????? Parallel Scavenge ?? Parallel Old ??????? ### 3.6 CMS ????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/62e77997-6957-4b68-8d12-bfd609bb2c68.jpg) CMS??Concurrent Mark Sweep?????? Mark Sweep ?????????????? ??? - ??? ??????? ?????????????????? ??????????????? 1. ??????????????????? GC Roots ??????????????????????????? 2. ???????????? GC Roots Tracing ????????????????????????????????????? 3. ????????????????????????????????????????????????????????????????????????????? 4. ?????????????????? ????????????????????????????????????????????????????????????????????????????? ??????????? 1. ?? CPU ???????CMS ??????????????????? (CPU ???? + 3) / 4???? CPU ???? 4 ?????CMS ??????????????????????????? CPU ???????????????????????????????????????????????????????????????????? 50%?????????????????????????????????????????????????????? CPU ????????? 2. ??????????????????????????????????????????????????????????????????????????????????????????????????????????CMS ????????????????????????????????? GC ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -XX:CMSInitiatingOccupancyFraction ???????????????????????????????JDK 1.5 ???????????? 68?????????????????? 68% ?????????????????????????????????????????????????????????????? Concurrent Mode Failure?????????????????????????????? Serial Old ?????????????????????????????? 3. ??? - ?????????????????????????????????????????????????????????????????????????????????????????????????? Full GC?? ### 3.7 G1 ????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/f99ee771-c56f-47fb-9148-c0036695b5fe.jpg) G1??Garbage-First??????????????????????????????????????????????????????????????????HotSpot ????????????????????????????????????I?? JDK 1.5 ?????? CMS ??????? ?????????? - ??????????????????? CPU ???????????????????? CPU ???????????? - ??????????????????????????????????????????????????????????????? GC ??????????????????????????????????????????????????? GC ??????????????????????? - ????????????????????????? - ??????????????????????????? Region ??????????????????????????????????????????????????????? - ??????????????????? CMS ?????????????????????? G1 ?? CMS ??????????? G1 ???????????????????????????????????????????????????????????? M ???????????????????? GC ?????????? N ??????????????? Java??RTSJ?????????????????????? ?? G1 ??????????????????????????????????????????????????? G1 ????????????Java ?????????????????????????????? Java ??????????????????????Region?????????????????????????????????????????????????????????????????????????? Region??????????????????? ??????????????????????????????????????????????????? Java ?????????????????????????????? Region ????????????????????????????????????????????????????????????????????????????????????????????????????? Region????????? Garbage-First ??????????????????? Region ?????????????????????????????????????????????????????????????????????? Region ????????????????????????????? Region ???????????? Java ????????????????????????????????????????????????????????? Java ???????????????????? GC ???????????????????????????????? Region ?????????????????? Remembered Set????????????????? Reference ??????????????????????????? Write Barrier ?????????????? Reference ????????????????? Region ?????????????? CardTable ???????????????????????????????? Region ?? Remembered Set ???????????????????? GC ?????????????? Remembered Set ???????????????????????????? ???????????? Remembered Set ???????G1 ??????????????????????????????s 1. ?????? 2. ??????? 3. ????????????????????????????????????????????????????????????????????????????????????????????? Remembered Set Logs ???????????????? Remembered Set Logs ?????????? Remembered Set ??????????????????????????? 4. ??????????????? Region ????????????????????????????????? GC ?????????????????????????????????????????????????????????????????????? Region????????????????????????????????????????????? ### 3.8 ????????????????? | ????? | ???????? or ???? | ?????? / ????? | ?? | ??? | ?????? | | --- | --- | --- | --- | --- | --- | | **Serial** | ???? | ?????? | ?????? | ?????????? | ?? CPU ??????? Client ?? | | **Serial Old** | ???? | ????? | ??? - ???? | ?????????? | ?? CPU ??????? Client ????CMS ?????? | | **ParNew** | ???? | ?????? | ?????? | ?????????? | ?? CPU ??????? Server ?????? CMS ??? | | **Parallel Scavenge** | ???? | ?????? | ?????? | ?????????? | ????????????????????????? | | **Parallel Old** | ???? | ????? | ??? - ???? | ?????????? | ????????????????????????? | | **CMS** | ???? | ????? | ??? - ??? | ?????????? | ?????????????? B/S ?????????? Java ??? | | **G1** | ???? | both | ??? - ???? + ?????? | ?????????? | ?????????????????I CMS | ## 4. ?????????????? ### 4.1 ?????? Eden ???? ??????????????????????? Eden ???????? Eden ?????????????? Minor GC?? ### 4.2 ???????????????? ?? -XX:PretenureSizeThreshold ????????????????????????????????????? Eden ???? Survivor ?????????????? ### 4.3 ?????????????????? JVM ?????????????????????? Minor GC ????????? Survivor ????????????? Survivor ????????? 1?????????? Minor GC ??????????????? 1???????????????????????????????? 15 ????? -XX:MaxTenuringThreshold ??????? ### 4.4 ????????????? ?? Survivor ?????????????????????? Survivor ??????????????????????????????????????????? ### 4.5 ???????? ????? Minor GC ????JVM ??????????????????????????????????????????????????? Minor GC ??????????????????????????????????????????????????????????????????????????????? Minor GC?????????? Full GC?? ## 4.6 Full GC ????????? ???? Minor GC?????????????????? Eden ???????????????????? Minor GC???? Full GC ????????????????????? ### 4.6.1 ???? System.gc() ??????????????? JVM ???? Full GC??????????????????????????????????? Full GC????????? Full GC ???????????????????????????????????????????????????????????????????????????????? -XX:+ DisableExplicitGC ????? RMI ???? System.gc()?? ### 4.6.2 ?????????? ??????????????????????????????????????????????????????????????????????? Full GC ??????????????????????? Java.lang.OutOfMemoryError: Java heap space ????????????????????? Full GC??????????????????????? Minor GC ???????????????????????????????????????????????? ### 4.6.3 ??????????? ?????????? Minor GC ???????????????????????????????? HandlePromotionFailure ????????????? Full GC?? ### 4.6.4 JDK 1.7 ????????????????? ?? JDK 1.7 ???????HotSpot ????????????????????????????????????? class ??????????????????????????????????????????????????????????????Permanet Generation ????????????????????? CMS GC ????????????? Full GC????????? Full GC ?????????????? JVM ?????????????????java.lang.OutOfMemoryError: PermGen space ????? PermGen ?????? Full GC ????????????????? PermGen ????????? CMS GC?? ?? JDK 1.8 ?????????I???????????????????????????????????????????? Full GC ???????????? ### 4.6.5 Concurrent Mode Failure ??? CMS GC ??????????????????????????????????????????????????? CMS GC ??????????????????????????????? Full GC??????? Concurrent Mode Failure ????????? Full GC?? # ???????? ???????????????????? ## 1 ??????????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/32b8374a-e822-4720-af0b-c0f485095ea2.jpg) ???????? 7 ????? - **?????Loading??** - **?????Verification??** - **?????Preparation??** - **??????Resolution??** - **???????Initialization??** - ????Using?? - ???Unloading?? ????????????????????????????????????????????????? Java ??????? ## 2. ????????? ??????Z?????????????????????????Z??????????????????????????????????????( ???????????????????????? ) 1. ???? new??getstatic??putstatic??invokestatic ???????????????????????????????????????????????????????????????? 4 ??????????????? new ??????????????????????????????????????? final ?????????????????????????????????????????????????????????????? 2. ??? java.lang.reflect ???????????????????????????????????????????????????????? 3. ?????????????????????????????????????????????????????????? 4. ?????????????????????????????????????? main() ????????????????????????????????? 5. ????? jdk1.7 ???????????????????? java.lang.invoke.MethodHandle ?????????????? REF_getStatic, REF_putStatic, REF_invokeStatic ??????????????????????????????????????????????????????????????? ???? 5 ?????????????????????????????????????????????????????????????????????????????????????????????????? 1\. ???????????????????????????????????? ```java System.out.println(SubClass.value); // value ????? SuperClass ???? ``` 2\. ??????E????????????????????????????????????????????????????????????????????????????????? Object ????????????????????????????? ```java SuperClass[] sca = new SuperClass[10]; ``` 3\. ????????????????????????????????????????????????i?????????????????i????????????? ```java System.out.println(ConstClass.HELLOWORLD); ``` ## 3. ???????? ???????????????????????????????? 5 ????? ### 3.1 ???? ???????????????????????????? ????????????????????? 1. ???????????????????????????????????????? 2. ???????????????????????????????????????????? 3. ???????????????????????? Class ?????????????????????????????????? ???????????????????????????? - ?? ZIP ???????????????????????? JAR??EAR??WAR ?????????? - ????????????????????????????? Applet?? - ???????????????????????????????????????????? java.lang.reflect.Proxy ?????????? ProxyGenerator.generateProxyClass ???????????????????? - ??????????????????????? JSP ???????? JSP ??????????? Class ?? - ????????????????????????????????????????????? SAP Netweaver????????????????????????????????????????????? ... ### 3.2 ??? ??? Class ????????????????????????????????????????????????????????? ????????? 4 ????? 1. ????????? 2. ??????????????????????????????????????? 3. ????????????????????????????????????????????????????????????????????????????????? 4. ??????????? ### 3.3 ??? ???????? static ???????????????????????????g??????????????????????? ????????????????????????????????????????????????????? Java ???? ???????? 0 ????????????????? value ???????? 0 ?????? 123?? ```java public static int value = 123; ``` ????????????????????????????????????????????? 0?? ```java public static final int value = 123; ``` ### 3.4 ???? ?????????????????I????????????? ### 3.5 ????? ?????????????????????? <clinit>() ?????????? ????????????????????????????????????????????????????????????????????????????????????????????? <clinit>() ??????????????? - ???????????????????????????????????????????static{} ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ```java public class Test { static { i = 0; // ???????????????????????? System.out.print(i); // ????????????????????????? } static int i = 1; } ``` - ?????????????????????????? <init>()??????????????????????????????????????????????????? <clinit>() ????????????????? <clinit>() ?????????????????????????????? <clinit>() ??????????? java.lang.Object?? - ???????? <clinit>() ??????????????????????????????????????????????????????????????? ```java static class Parent { public static int A = 1; static { A = 2; } } static class Sub extends Parent { public static int B = A; } public static void main(String[] args) { System.out.println(Sub.B); // ???????????????????? A??????? 2 } ``` - <clinit>() ???????????????????????????????????????????????????????????????????????????????? <clinit>() ?????? - ???????????????????????????????????????????????????????????????? <clinit>() ?????????????????????????? <clinit>() ?????????????????? <clinit>() ?????????????????????????????????????????????????????????????????????????? <clinit>() ?????? - ?????????????? <clinit>() ??????????????????????????????????????????????????????????????????????? <clinit>() ???????????????????????????????????? <clinit>() ??????????????????? <clinit>() ?????????????????????????????????????????????????????????? ## 4. ??????? ????????????????????????????????????????????????????????????? ( ??????? )???????????? Java ?????????????????????????????????????????????????????????????????????????????? ### 4.1 ??????????? ???????????????????????????????????????????????????? Java ?????????????????????????????????????????????????????????????????????????????????????????????? Class ????? equals() ??????isAssignableFrom() ??????isInstance() ????????????????????? instanceof() ???????????????????????????????????????????????????????????????????????????????????????????????? Class ??????????????????????????????????????????????????????????????? ### 4.2 ??????????? ?? Java ????????????????????????????????????????? ??????????????????Bootstrap ClassLoader???????????????? C++ ?????????????????????????????????????????????????????? Java ???????????????????????????????????? java.lang.ClassLoader?? ?? Java ???????????????????????????????????? - ?????????????Bootstrap ClassLoader?? ????????????????? \lib ?????????? -Xbootclasspath ???????????????????????????????????????????????? rt.jar???????????????????? lib ??????????????????????????????? ???????????????? Java ??????????????????????????????????????????????????????????????????????? null ???r?? - ????????????Extension ClassLoader?? ?????????????? ExtClassLoader??sun.misc.Launcher$ExtClassLoader????????????? /lib/ext ????? java.ext.dir ?????????????????????????????????????????????????????????? - ??????????????Application ClassLoader?? ?????????????? AppClassLoader??sun.misc.Launcher$AppClassLoader??????????????????????? ClassLoader ?? getSystemClassLoader() ?????????????????????????????????????????????????ClassPath??????????????????????????????????????????????????????????????????????????????????????????????????????????? ### 4.3 ????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????Parents Delegation Model??????????????????????????????????????????????????????????????????????????????????????????????Composition???????????????????????Inheritance?????????? ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/2cdc3ce2-fa82-4c22-baaa-000c07d10473.jpg) **????????** ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? **???** ??????????????????????????????????? Java ???????????????????????????????????????????????? java.lang.Object????????? rt.jar ?????????????????????????????????????????????????????????????????????? Object ????????????????????????????????????????????????????????????????????????????????????????????java.lang.Object ?????????????? ClassPath ???????????????????? Object ????????????????????????????????? rt.jar ????????????????? Java ??????????????????????????????????????? **???** ```java protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException{ //check the class has been loaded or not Class c = findLoadedClass(name); if(c == null) { try{ if(parent != null) { c = parent.loadClass(name, false); } else{ c = findBootstrapClassOrNull(name); } } catch(ClassNotFoundException e) { //if throws the exception , the father can not complete the load } if(c == null) { c = findClass(name); } } if(resolve) { resolveClass(c); } return c; } ``` # JVM ???? ## GC ??????? | ???? | ???? | | --- | --- | | -Xms | ??????????? | | -Xmx | ????????? | | -Xmn | ???????? | | -XX:PermSize | ???????????? | | -XX:MaxPermSize | ???????????? | ## GC ???????? | ???? | ???? | | --- | --- | | -XX:+UseSerialGC | ?????????????? | | -XX:+UseParallelGC | ?????????????? | | -XX:+UseConcMarkSweepGC | ???????????????????? | | -XX:ParallelCMSThreads= | ???????????????????? = ???????????? | | -XX:+UseG1GC | G1 ?????????? | ```java java -Xmx12m -Xms3m -Xmn1m -XX:PermSize=20m -XX:MaxPermSize=20m -XX:+UseSerialGC -jar java-application.jar ```