åæžã
ã¡ã¢ãªãªãŒã¯ã¯éåžžãã¢ããªã±ãŒã·ã§ã³ã®é·ææäœäžã«ããŒãå ã®å æã¡ã¢ãªéãå¢å ããã¬ããŒãžã³ã¬ã¯ã¿ãçµäºããåŸãæžå°ããªãç¶æ³ãšåŒã°ããŸãããåç¥ã®ããã«ãjvmã¡ã¢ãªã¯ããŒããšã¹ã¿ãã¯ã«åãããŠããŸããã¹ã¿ãã¯ã¯åçŽãªã¿ã€ãã®å€æ°ã®å€ãšã¹ããªãŒã ã®ã³ã³ããã¹ãå ã®ãªããžã§ã¯ããžã®åç §ãæ ŒçŽããããŒãã¯ãªããžã§ã¯ãèªäœãæ ŒçŽããŸãããŸããããŒãã«ã¯MetaspaceãšåŒã°ããã¹ããŒã¹ããããããŒããããã¯ã©ã¹ã«é¢ããããŒã¿ãšãã¯ã©ã¹èªäœã«ãã€ã³ããããããŒã¿ãæ ŒçŽããŸããã€ã³ã¹ã¿ã³ã¹ãç¹ã«éçå€æ°ã®å€ã¯æ ŒçŽããŸããã Javaãã·ã³ã«ãã£ãŠå®æçã«èµ·åãããGarbageCollectorïŒä»¥äžãGCïŒã¯ãåç §ãããªããªã£ããªããžã§ã¯ããããŒãå ã§æ€åºãããããã®ãªããžã§ã¯ããå æããŠããã¡ã¢ãªã解æŸããŸãã GCäœæ¥ã¢ã«ãŽãªãºã ã¯ç°ãªããç¹ã«è€éã§ãã次åGCãèµ·åãããšãã«ãæªäœ¿çšã®ãªããžã§ã¯ããèŠã€ããããã«æ¯åããŒãå šäœããæ€æ»ãããããã§ã¯ãªãããã1åã®GCã®èµ·ååŸã«æªäœ¿çšã®ãªããžã§ã¯ããã¡ã¢ãªããåé€ããããšããäºå®ã«äŸåãã䟡å€ã¯ãããŸããããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããã¡ã¢ãªã®éãå®å®ããŠããå Žåé·ãéæçœãªçç±ããªãæé·ããã®ã§ããã®ãããªç¶æ³ã«ã€ãªãã£ãå¯èœæ§ããããã®ã«ã€ããŠèããæãæ¥ãŸããã
jvmã«ã¯ãå€æ©èœãŠãŒãã£ãªãã£Visual VMïŒä»¥äžãVMãšåŒã³ãŸãïŒãå«ãŸããŠããŸãã VMã䜿çšãããšãã°ã©ãå ã®jvmã®äž»èŠãªã€ã³ãžã±ãŒã¿ãŒã®ãã€ããã¯ã¹ãç¹ã«ãããŒãå ã®ç©ºãã¡ã¢ãªãšå æã¡ã¢ãªã®éãããŒããããã¯ã©ã¹ãã¹ã¬ããã®æ°ãªã©ãèŠèŠçã«èŠ³å¯ã§ããŸããããã«ãVMã䜿çšããŠãã¡ã¢ãªãã³ããååŸããŠèª¿ã¹ãããšãã§ããŸãããã¡ãããVMã§ã¯ã¹ã¬ãããã³ããšã¢ããªã±ãŒã·ã§ã³ãããã¡ã€ãªã³ã°ãå¯èœã§ããããããã®æ©èœã®æŠèŠã¯ãã®èšäºã®ç¯å²ãè¶ ããŠããŸãããã®äŸã§VMã«å¿ èŠãªã®ã¯ãä»®æ³ãã·ã³ã«æ¥ç¶ããŠãæåã«ã¡ã¢ãªäœ¿çšéã®å šäœåã確èªããããšã ãã§ãã VMããªã¢ãŒããµãŒããŒã«æ¥ç¶ããã«ã¯ãæ¥ç¶ãjmxãä»ããŠãããããjmxremoteãã©ã¡ãŒã¿ãŒãVMã§æ§æããå¿ èŠãããããšã«æ³šæããŠãã ããããããã®ãã©ã¡ãŒã¿ãŒã®èª¬æã«ã€ããŠã¯ãOracleã®å ¬åŒããã¥ã¡ã³ããŸãã¯Habréã«é¢ããå€æ°ã®èšäºãåç §ããŠãã ããã
ããã§ãVMã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«æ£åžžã«æ¥ç¶ãããšä»®å®ããã°ã©ããèŠãŠã¿ãŸãããã
[ããŒã]ã¿ãã§ãjvmã®åèšã¡ã¢ãªãšäœ¿çšæžã¿ã¡ã¢ãªã確èªã§ããŸãããã®ã¿ãã§ã¯ãã¡ã¿ã¹ããŒã¹ã¿ã€ãã®ã¡ã¢ãªãèæ ®ãããŠããããšã«æ³šæããŠãã ããïŒãããããŒãã§ãããããä»ã®æ¹æ³ã§ãïŒã [ã¡ã¿ã¹ããŒã¹]ã¿ãã«ã¯ãã¡ã¿ããŒã¿ãå æããŠããã¡ã¢ãªïŒã¯ã©ã¹èªäœãšããã«ãã€ã³ããããŠãããªããžã§ã¯ãïŒã«é¢ããæ å ±ã®ã¿ã衚瀺ãããŸãã
ã°ã©ããèŠããšãããŒãã¡ã¢ãªã®åèšãçŽ10GBãçŸåšã®å æã¹ããŒã¹ãçŽ5.8GBã§ããããšãããããŸããã°ã©ãã®éèµ·ã¯GCåŒã³åºãã«å¯Ÿå¿ãã10ïŒ18é ããå§ãŸãã»ãŒçŽç·ïŒéèµ·ãªãïŒã¯ãã¢ã¯ãã£ããªå²ãåœãŠãšå²ãåœãŠè§£é€ããªãã£ãããããã以éãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãã»ãšãã©å®è¡ãããŠããªãããšã瀺ããŸãïŒå¿ ããããããšã¯éããŸããïŒãã¡ã¢ãªãäžè¬ã«ããã®ã°ã©ãã¯ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®éåžžã®æäœã«å¯Ÿå¿ããŸãïŒãã¡ãããã¡ã¢ãªããã®ã¿äœæ¥ãå€æããå ŽåïŒãåé¡ã®ã°ã©ãã¯ãéèµ·ã®ãªãçã£çŽããªæ°Žå¹³ã®éãç·ããããŒãå ã®ã¡ã¢ãªã®æ倧éãè¡šããªã¬ã³ãžè²ã®ç·ã®ãããã«ããã°ã©ãã§ãã
次ã«ãå¥ã®ã°ã©ããèŠãŠã¿ãŸãããã
ããã§ã¯ããã®èšäºã®ã¡ã€ã³ãããã¯ã§ããäŸã®åæã«çŽæ¥è¡ããŸããã¯ã©ã¹ã°ã©ãã¯ãã¡ã¿ã¹ããŒã¹ã«ããŒããããã¯ã©ã¹ã®æ°ã瀺ããçŽ73,000ãªããžã§ã¯ãã§ããã¯ã©ã¹ã€ã³ã¹ã¿ã³ã¹ã«ã€ããŠã§ã¯ãªããã¯ã©ã¹èªäœãã€ãŸãã¯ã©ã¹<ïŒ>ã¿ã€ãã®ãªããžã§ã¯ãã«ã€ããŠè©±ããŠãããšããäºå®ã«æ³šæãåããããšæããŸããã°ã©ããããåã ã®ã¿ã€ãClassAãŸãã¯ClassBã®ã€ã³ã¹ã¿ã³ã¹ãããã€ã¡ã¢ãªã«ããŒããããŠãããã¯æããã§ã¯ãããŸããããããããäœããã®çç±ã§ã¯ã©ã¹Aã¿ã€ãã®åäžã¯ã©ã¹ã®æ°ãå¢å ããŸããïŒä»¥äžã§èª¬æããäŸã§ã¯ã73,000ã®äžæã®ã¯ã©ã¹ã¯çµ¶å¯Ÿã«æ£åžžãªç¶æ³ã§ãã£ããšèšããªããã°ãªããŸããã
äºå®ããã®èšäºã®èè ãåå ãããããžã§ã¯ãã®1ã€ã§ã¯ãèŸæžã·ã¹ãã ãšåŒã°ãããã¡ã€ã³ãšã³ãã£ãã£ïŒ1Cãªã©ïŒã®ãŠãããŒãµã«èšè¿°ãããã³ç¹å®ã®é¡§å®¢ãŸãã¯ç¹å®ã®äºæ¥é åã«åãããŠã·ã¹ãã ãã«ã¹ã¿ãã€ãºããã¢ããªã¹ãã®ããã®ã¡ã«ããºã ãéçºãããŸãããç¹å¥ãªãšãã£ã¿ãŒãä»ããŠãããŒãã«ã®ã¬ãã«ã§ã¯ãªãããããã¥ã¡ã³ããããã¢ã«ãŠã³ããããåŸæ¥å¡ããªã©ã®æŠå¿µã§åäœãããæ°ãããšã³ãã£ãã£ãšå€æŽããæ¢åã®ãšã³ãã£ãã£ãäœæããããšã«ãã£ãŠããžãã¹ã¢ãã«ãã¢ãã«åããæ©äŒããããŸãããã·ã¹ãã ã«ãŒãã«ã¯ããšã³ãã£ãã£ããŒã¿çšã®ãªã¬ãŒã·ã§ãã«DBMSã«ããŒãã«ãäœæããŸããããŠãããŒãµã«ã·ã¹ãã ã§ã¯ãå±æ§å€ãå±¥æŽã«ä¿åã§ããããŒã¿ããŒã¹ã«è¿œå ã®ãµãŒãã¹ããŒãã«ãäœæããå¿ èŠãããããããšã³ãã£ãã£ããšã«ããã€ãã®ããŒãã«ãäœæã§ããŸããã
ORMãã¬ãŒã ã¯ãŒã¯ã䜿çšããªããã°ãªããªãã£ã人ã ã¯ãããŒãã«ã«ã€ããŠè©±ãããšã«ãã£ãŠèšäºã®ã¡ã€ã³ãããã¯ããæ°ãåãããŠãèè ãäœã«ã€ããŠã§ãããããã§ã«æšæž¬ããŠãããšæããŸãããããžã§ã¯ãã¯Hibernateã䜿çšããããŒãã«ããšã«EntityBeanã¯ã©ã¹ãå¿ èŠã§ãããåæã«ãã¢ããªã¹ãã«ããã·ã¹ãã ã®äœæ¥äžã«æ°ããããŒãã«ãåçã«äœæããããããHibernate Beanã¯ã©ã¹ãçæãããéçºè ãæåã§äœæããããšã¯ãããŸããã§ããããããŠã次äžä»£ããšã«ãçŽ5äžãã6äžã®æ°ããã¯ã©ã¹ãäœæãããŸãããã·ã¹ãã å ã®ããŒãã«ã¯å€§å¹ ã«å°ãªããªããŸãããïŒçŽ5ã6åïŒãããŒãã«ããšã«ããšã³ãã£ãã£Beanã¯ã©ã¹ã ãã§ãªããå€ãã®è£å©ã¯ã©ã¹ãçæãããæçµçã«å ±éã®æ°å€ã«ãªããŸããã
äœæ¥ã®ä»çµã¿ã¯ä»¥äžã®ãšããã§ããã·ã¹ãã ã®éå§æã«ããšã³ãã£ãã£Beanã¯ã©ã¹ãšè£å©ã¯ã©ã¹ïŒä»¥äžãåã«Beanã¯ã©ã¹ïŒãããŒã¿ããŒã¹å ã®ã¡ã¿ããŒã¿ã«åºã¥ããŠçæãããŸãããã·ã¹ãã ã®å®è¡äžã«ãHibernateã»ãã·ã§ã³ãã¡ã¯ããªãã»ãã·ã§ã³ãäœæããã»ãã·ã§ã³ãBeanã¯ã©ã¹ãªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãããæ§é ãå€æŽïŒããŒãã«ã®è¿œå ãå€æŽïŒãããšãBeanã¯ã©ã¹ãåçæãããæ°ããã»ãã·ã§ã³ãã¡ã¯ããªãäœæãããŸãããåçåŸãæ°ãããã¡ã¯ããªã¯æ°ããBeanã¯ã©ã¹ã䜿çšããæ°ããã»ãã·ã§ã³ãäœæããå€ããã¡ã¯ããªãšã»ãã·ã§ã³ã¯éããããå€ãBeanã¯ã©ã¹ã¯Hibernateã€ã³ãã©ã¹ãã©ã¯ãã£ãªããžã§ã¯ãããåç §ãããªããªã£ããããGCã«ãã£ãŠã¢ã³ããŒããããŸããã
ããæç¹ã§ããã³ã¯ã©ã¹ã®æ°ã次ã®åçããšã«å¢å ãå§ãããšããåé¡ãçºçããŸãããæããã«ãããã¯ã䜿çšãããã¹ãã§ã¯ãªããªã£ãå€ãã¯ã©ã¹ã®ã»ããããäœããã®çç±ã§ã¡ã¢ãªããã¢ã³ããŒããããªãã£ããšããäºå®ã«ãããã®ã§ãããã·ã¹ãã ã®ãã®åäœã®çç±ãç解ããããã«ãEclipse Memory AnalizerïŒMATïŒã圹ã«ç«ã¡ãŸããã
ã¡ã¢ãªãªãŒã¯ãèŠã€ãã
MATã¯ã¡ã¢ãªãã³ããåŠçããŠãæœåšçãªåé¡ãèŠã€ããããšãã§ããŸãããæåã«ãã®ã¡ã¢ãªãã³ããååŸããå¿ èŠããããŸãããå®éã®ç°å¢ã§ã¯ããã³ãã®ååŸã«ã¯äžå®ã®åŸ®åŠãªéãããããŸãã
ã¡ã¢ãªãã³ãã®åé€
åè¿°ã®ããã«ãã¡ã¢ãªãã³ãã¯ã[
ããã]ãã¿ã³ãæŒãããšã§VMããçŽæ¥åé€ã§ããŸãããã³ãã®ãµã€ãºã倧ãããããVMã¯ãã®ã¿ã¹ã¯ã«å¯Ÿå¿ã§ããã[ããŒããã³ã]ãã¿ã³ãæŒããŠãããã°ãããããšããªãŒãºããå ŽåããããŸããããã«ãjmxãä»ããŠVMã«å¿ èŠãªè£œåã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«æ¥ç¶ã§ãããšããããšã¯ãŸã£ããäºå®ã§ã¯ãããŸããããã®å ŽåãjMapãšåŒã°ããå¥ã®jvmãŠãŒãã£ãªãã£ã圹ã«ç«ã¡ãŸããã³ãã³ãã©ã€ã³ã§ãjvmãå®è¡ãããŠãããµãŒããŒäžã§çŽæ¥å®è¡ãããè¿œå ã®ãã³ããã©ã¡ãŒã¿ãèšå®ã§ããŸã
ãjmap- dump ïŒliveãformat = bãfile = / tmp / heapdump.bin 14616 âdumpïŒlive
ãã©ã¡ãŒã¿ã¯éåžžã«éèŠã§ããåç §ãããªããªã£ããªããžã§ã¯ããé€ããŠããµã€ãºãå€§å¹ ã«çž®å°ã§ããŸãã
ãã1ã€ã®äžè¬çãªç¶æ³ã¯ãjvmèªäœãOutOfMemoryErrorã§ã¯ã©ãã·ã¥ãããããæåãã³ããäžå¯èœãªå Žåã§ãããã®ç¶æ³ã§ã¯ã-XXïŒ+ HeapDumpOnOutOfMemoryErrorãªãã·ã§ã³ãå©ãã«ãªããããã«å ããŠã-XXïŒHeapDumpPathãããããã£ããã£ããããã³ããžã®ãã¹ãæå®ã§ããŸãã
次ã«ãEclipse MemoryAnalyzerã䜿çšããŠãã£ããã£ããããã³ããéããŸãããã¡ã€ã«ã®ãµã€ãºã¯å€§ãããªãå¯èœæ§ãããããïŒæ°ã®ã¬ãã€ãïŒãMemoryAnalyzer.iniãã¡ã€ã«ã«ååãªã¡ã¢ãªãæäŸããå¿ èŠããããŸãïŒ
-Xmx4096m
MATã䜿çšããŠåé¡ãç¹å®ãã
ããã§ãããŒããããã¯ã©ã¹ã®æ°ãåæã¬ãã«ãšæ¯èŒããŠåæ°å¢å ããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã匷å¶çã«åŒã³åºããåŸã§ãæžå°ããªãç¶æ³ãèããŠã¿ãŸãããïŒããã¯VMã®å¯Ÿå¿ãããã¿ã³ãæŒãããšã§å®è¡ã§ããŸãïŒã
äžèšã§ã¯ãBeanã¯ã©ã¹ãåçæããããã»ã¹ãšãã®äœ¿çšã«ã€ããŠæŠå¿µçã«èª¬æããŸãããããæè¡çãªã¬ãã«ã§ã¯ã次ã®ããã«ãªããŸããã
- ãã¹ãŠã®Hibernateã»ãã·ã§ã³ãéããããŸãïŒSessionImplã¯ã©ã¹ïŒ
- å€ãã»ãã·ã§ã³ãã¡ã¯ããªïŒSessionFactoryImplïŒãéããããLocalSessionFactoryBeanããã®å€ãã»ãã·ã§ã³ãã¡ã¯ããªãžã®åç §ããªã»ãããããŸã
- ClassLoaderãåäœæãããŸã
- ãžã§ãã¬ãŒã¿ãŒã¯ã©ã¹ã®å€ãBeanã¯ã©ã¹ãžã®åç §ã¯ç¡å¹ã«ãªããŸã
- Beanã¯ã©ã¹ãåçæãããŸã
å€ãBeanã¯ã©ã¹ãžã®åç §ããªãå Žåãã¬ããŒãžã³ã¬ã¯ã·ã§ã³åŸã«ã¯ã©ã¹ã®æ°ãå¢ããããšã¯ã§ããŸããã
MATãå®è¡ãã以åã«ååŸããã¡ã¢ãªãã³ããã¡ã€ã«ãéããŸãããã³ããéããåŸãMATã¯ã¡ã¢ãªå ã®ãªããžã§ã¯ãã®æ倧ã®ãã§ãŒã³ã衚瀺ããŸãã
Leak Suspectsãã¯ãªãã¯ãããšã詳现
ã衚瀺ãããŸãããããã265 Mã®åã®2ã€ã®ã»ã°ã¡ã³ãã¯ãSessionFactoryImplã®2ã€ã®ã€ã³ã¹ã¿ã³ã¹ã§ãããããã®ã€ã³ã¹ã¿ã³ã¹ã2ã€ããçç±ã¯æããã§ã¯ãªããã»ãšãã©ã®å Žåãåã€ã³ã¹ã¿ã³ã¹ã¯ãšã³ãã£ãã£Beanã¯ã©ã¹ã®å®å šãªã»ãããžã®åç §ãä¿æããŠããŸãã MATã¯ãæœåšçãªåé¡ã«ã€ããŠæ¬¡ã®ããã«éç¥ããŸãã
åé¡å®¹çè 3ã¯å®éã«ã¯åé¡ã§ã¯ãªãããšã«ããã«æ°ã¥ããŸããããããžã§ã¯ãã¯ç¬èªã®èšèªã®ããŒãµãŒãå®è£ ããŸãããããã¯SQLäžã®ãã«ããã©ãããã©ãŒã ã¢ããªã³ã§ãããããŒãã«ã§ã¯ãªãã·ã¹ãã ãšã³ãã£ãã£ãæäœã§ãã121Mã¯ã¯ãšãªãã£ãã·ã¥ãå æããŸãã
SessionFactoryImplã®2ã€ã®ã€ã³ã¹ã¿ã³ã¹ã«æ»ããŸãããã [ã¯ã©ã¹ã®è€è£œ]ãã¯ãªãã¯ããŠãåãšã³ãã£ãã£Beanã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãå®éã«2ã€ããããšã確èªããŸããã€ãŸãããšã³ãã£ãã£Beanã®å€ãã¯ã©ã¹ãžã®ãªã³ã¯ã¯æ®ããã»ãšãã©ã®å Žåããããã¯SesssionFactoryImplããã®ãªã³ã¯ã§ãããã®ã¯ã©ã¹ã®ãœãŒã¹ã³ãŒãã«åºã¥ããŠãBeanã¯ã©ã¹ãžã®åç §ãclassMetaDataãã£ãŒã«ãã«æ ŒçŽããå¿ èŠããããŸãã
Problem Suspect 1ãã¯ãªãã¯ãã次ã«SessionFactoryImplã¯ã©ã¹ãã¯ãªãã¯ããŠãã³ã³ããã¹ãã¡ãã¥ãŒãã[List Objects]-> [With outgouingreferences]ãéžæããŸãããã®ããã«ããŠãSessionFactoryImplã«ãã£ãŠåç §ããããã¹ãŠã®ãªããžã§ã¯ãã確èªã§ããŸãã
classMetaDataãªããžã§ã¯ããå±éãããšã³ãã£ãã£Beanã¯ã©ã¹ã®é åãå®éã«æ ŒçŽãããŠããããšã確èªããŸãã
ããã§ãã¬ããŒãžã³ã¬ã¯ã¿ãSessionFactoryImplã®åäžã€ã³ã¹ã¿ã³ã¹ãç Žæ£ã§ããªãåå ãç解ããå¿ èŠããããŸãã Leak Suspects-> Leaks-> Problem Suspect 1ã«æ»ããšãSessionFactoryImplãžã®ãªã³ã¯ã«ã€ãªãããªã³ã¯ã®ã¹ã¿ãã¯ã衚瀺ãããŸãã
HTTPã»ãã·ã§ã³ã®ã³ã³ããã¹ããå«ãSessionInfoImplBeanã®entityManagerå€æ°ã«ã¯ãHibernate SessionImplãªããžã§ã¯ããããŒãšããŠäœ¿çšããé ådbTransactionListenersãå«ãŸããŠãããã»ãã·ã§ã³ã¯SessionFactoryImplãåç §ããŠããããšãããããŸãã
å®éã«ã¯ãã»ãã·ã§ã³ãªããžã§ã¯ãã¯ç¹å®ã®ç®çã§dbTransactionListenersã«ãã£ãã·ã¥ãããŠãããBeanã¯ã©ã¹ãåçæãããåã¯ãããããžã®åç §ããã®é åã«æ®ã£ãŠããå¯èœæ§ããããŸãã次ã«ãã»ãã·ã§ã³ã¯ããã¹ãŠã®Beanã¯ã©ã¹ãžã®åç §ã®é åãæ ŒçŽããã»ãã·ã§ã³ãã¡ã¯ããªãåç §ããŸãããããã«ãã»ãã·ã§ã³ã¯ãšã³ãã£ãã£ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãžã®åç §ãä¿æããBeanã¯ã©ã¹èªäœãåç §ããŠããŸããã
ãããã£ãŠãåé¡ãžã®ãšã³ããªãã€ã³ããèŠã€ãããŸãããdbTransactionListenersããã®å€ãã»ãã·ã§ã³ãžã®åç §ã§ããããšãå€æããŸããããšã©ãŒãä¿®æ£ãããdbTransactionListenersé åãã¯ãªã¢ããå§ããåŸãåé¡ãä¿®æ£ãããŸããã
Eclipseã¡ã¢ãªã¢ãã©ã€ã¶ã®æ©èœ
ãããã£ãŠãEclipse MemoryAnalyzerã§ã¯æ¬¡ã®ããšãã§ããŸãã
- ãªããžã§ã¯ãã®ã©ã®ãã§ãŒã³ãæ倧éã®ã¡ã¢ãªãå æããŠãããã調ã¹ããããã®ãã§ãŒã³ãžã®ãšã³ããªãã€ã³ãã決å®ããŸãïŒãªãŒã¯ã®çããããïŒ
- ãã¹ãŠã®çä¿¡ãªããžã§ã¯ãåç §ã®ããªãŒã衚瀺ããŸãïŒçŽ¯ç©ãã€ã³ããžã®æçãã¹ïŒ
- ãªããžã§ã¯ãã®ãã¹ãŠã®éä¿¡åç §ã®ããªãŒã衚瀺ããŸãïŒ[ãªããžã§ã¯ã]-> [ãªããžã§ã¯ãã®ãªã¹ã]-> [éä¿¡åç §ãã]ïŒ
- ç°ãªãClassLoaderã«ãã£ãŠããŒããããéè€ã¯ã©ã¹ãåç §ããŠãã ããïŒéè€ã¯ã©ã¹ïŒ