ãã€ã¯ããœããã·ãã¢éçºè
ãçœæ©ç·
æ·±ããæ Œå¥ãªãšãã§ã¯ãã£ãJava ð¢
Javaã®å匷ã®çµããããšãã§ã¯ãã£ãJavaã
Effective Java ?
ãã¹ãŠã®Javaéçºè
ãäžåºŠå匷ããããšããŸãããã
決ããŠèª°ãåŸæã§ããªãæ¬ã ããšãã§ã¯ãã£ãJavaã
ãã®è¬çŸ©ãå®å
šã«æ»ç¥ããŸãã
é«ã¬ãã«ã®ããã¯ãšã³ãéçºè
ãªãããããªãã®ããã
ããšãã§ã¯ãã£ãJava 3/Eãã¯ããã¹ãŠã®Javaéçºè
ã«ãå§ãã®æ¬ã§ãããé説çã«ã¯ããã¹ãŠã®Javaéçºè
ãç°¡åã«åŠç¿ã§ããæ¬ã§ã¯ãããŸãããæåã®ã¢ã€ãã ããæ£ããæ¶åããã«ã¯ããåæåããããã©ã€ãŠã§ã€ããã¿ãŒã³ãããã€ã³ã¿ãã§ãŒã¹ã®éçã¡ãœããããããµãŒãã¹ãããã€ããã¬ãŒã ã¯ãŒã¯ããããªãã¬ã¯ã·ã§ã³ããšããèæ¯ç¥èãå¿
èŠã§ãããã®ãããªèæ¯ç¥èãªãã«æ¬ã®å
容ã100ïŒ
çè§£ããã®ã¯é£ããã§ããããã ãåŠç¿ãã«ããæ¬ã§ãããäžã€ãã€åŠç¿ããããšãã«ç¶ãå ±é
¬ãæ Œå¥ã§ãã
ããšãã§ã¯ãã£ãJavaãã®å
容ãçè§£ããã°ãçããã®å®åãšç¥èã¯ä»¥åã«æ¯ã¹ãŠå€§å¹
ã«åäžããæ°ããªèŠçãæããã«ããŠãããŸããä»ã®ããã°ã©ãã³ã°èšèªãå匷ããã䜿çšãããããŠãã ïŒãŸãã§ãã®æ¬ãäžçæžåœå匷ããŠããŸããããä»ã¯ãã€ã¯ããœããã§CïŒãšPowershellã䜿ã£ãŠåããŠããä»ã®ç§ã®ããã§ãããïŒ
ã·ãªãŒãºã«ææŠãã
ãšãã§ã¯ãã£ãJavaå®ç§æ»ç¥
ãšãã§ã¯ãã£ãJavaå®ç§æ»ç¥ - Part 2 ã·ãªãŒãºé£èŒäž
ããšãã§ã¯ãã£ãJavaããèš5éšã«åããŠåŠç¿ããŸãã第2éšã«è©²åœãããã®è¬çŸ©ã¯ããšãã§ã¯ãã£ãJavaã第4ç« ãã¯ã©ã¹ãšã€ã³ã¿ãŒãã§ãŒã¹ããšç¬¬5ç« ããžã§ããªãã¯ããåãäžããŸãã
ããšãã§ã¯ãã£ãJavaãåŠç¿ãå°é£ã«ããéçºè
ãåŠçããããå®å
šã«åŠç¿ãããæ¹ã®ããã«ãåã¢ã€ãã ãã³ãŒããšãšãã«ãŸãšããåã¢ã€ãã å¥ã«åŠç¿ããã®ã«åœ¹ç«ã€èæ¯ç¥èããå±ãããŸããçããã®ããšãã§ã¯ãã£ãJavaãåŠç¿ãã¯ããã«é¢çœããç°¡åã§ããŸããåŸã§ãã
Javaã®æ·±ååŠç¿ãå¿
èŠãªæ¹ãžã
ãã®è¬çŸ©ã¯ããã°ã©ãã³ã°åå¿è
ãå
¥éè
ã®ããã®è¬çŸ©ã§ã¯ãããŸããã Javaã䜿ã£ãŠä»äºãããŠããéçºè
ãåºæ¬çãªJavaå匷ãçµããããã¬ãã«ã®é«ãæ·±ååŠç¿ãéããŠå®åãäžãããéçºè
ãåŠçã®ããã®è¬çŸ©ã§ããæ¬¡ã®è¬çŸ©ãåè¬ããããããã«æºããåŠç¿ãããããä»åã®è¬çŸ©ãèãããšãã§ããŸãã ïŒè©³çްã¯ã»ã¯ã·ã§ã³0 - è¬çŸ©ç޹仿æ¥ãåç
§ããŠãã ãããïŒ
å¿
é åŠç¿ã³ãŒã¹
æšå¥šåŠç¿ã³ãŒã¹
è¬çŸ©ã§ææ¡ãã
4-StepåŠç¿é åº
ãã®ã¬ãã¹ã³ã§ã¯ããšãã§ã¯ãã£ãJava 2éšãš3éšã§ã«ããŒãããåèš14ã®ã¢ã€ãã ãã«ããŒããå®ç§ãªæ»ç¥ã®ããã«åèš30ã«éããèæ¯ç¥èãäŒããŸãããŸãããšãã§ã¯ãã£ãJavaãæ¬ã§æžãããã®ã ããçè§£ããããããããã®è¿œå ã®ãœãŒã¹ã³ãŒããæäŸããŠããŸããæšå¥šããåŠç¿æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
Step 1
ããšãã§ã¯ãã£ãJavaããææãšããŠè³Œå
¥ããã¢ã€ãã ãäžã€å
ã«èªã¿ãŸãã
Step 2
ããšãã§ã¯ãã£ãJavaå®ç§æ»ç¥1éšãã«è©²åœããã¢ã€ãã ã®ãæ žå¿æŽçãææ¥ãåè¬ããŸãã
Step 3
ç¶ããå®å
šãªæ»ç¥ãã¬ãã¹ã³ãåè¬ããäžè¶³ããŠããéšåã¯è£è¶³åŠç¿ãç¶ããŸãã
Step 4
ããã«åŠç¿ããéšåãå人ããã°ã«ãŸãšããŠã質ååçãæ²ç€ºæ¿ã«ãªã³ã¯ãæ®ããŠãããšã¬ãã¥ãŒããããŠããã ããŸãã
14åã¢ã€ãã å¥å®ç§æ»ç¥ã
åŠç¿ã«ãªãã¥ã©ã ð
ã¢ã€ãã 15.ã¯ã©ã¹ãšã¡ã³ããŒã®ã¢ã¯ã»ã¹æš©ãæå°éã«æããŸãã
- æ
å ±é èœ
- ã¢ã¯ã»ã¹å¶éè
ã®äœ¿çšåå
- Javaãã©ãããã©ãŒã ã¢ãžã¥ãŒã«ã·ã¹ãã
é
ç® 16. public ã¯ã©ã¹ã§ã¯ãpublic ãã£ãŒã«ãã§ã¯ãªãã¢ã¯ã»ãµã¡ãœããã䜿çšããŸãã
- å
éšãå
¬éããDimensionã¯ã©ã¹ã®æ§èœåé¡
ã¢ã€ãã 17.倿Žã®å¯èœæ§ãæå°éã«æããã
- äžå€ã¯ã©ã¹
- äžå€ã¯ã©ã¹ã®é·æãšçæ
- finalãšJavaã¡ã¢ãªã¢ãã«
- java.util.concurrent ããã±ãŒãž
- CountDownLatch
ã¢ã€ãã 18.ç¶æ¿ã§ã¯ãªãã³ã³ããžã·ã§ã³ã䜿çšããŠãã ããã
- ç¶æ¿ã®æ¬ ç¹
- ã³ã³ããžã·ã§ã³ã®å©ç¹
- ãã³ã¬ãŒã¿ãŒãã¿ãŒã³
- ã³ãŒã«ããã¯ãã¬ãŒã ã¯ãŒã¯ãšã»ã«ãåé¡
ã¢ã€ãã 19-20ãç¶æ¿ãèæ
®ããŠèšèšãææžåãããããã§ãªãã£ããç¶æ¿ãçŠæ¢ããªããã
- @implSpec
- ã€ã³ã¿ãŒãã§ã€ã¹ã®å©ç¹
- ã€ã³ã¿ãã§ãŒã¹ãšæœè±¡ã¹ã±ã«ãã³ã¯ã©ã¹
- ãã³ãã¬ãŒãã¡ãœãããã¿ãŒã³
- ããã©ã«ãã¡ãœãããšObjectã¡ãœãã
ã¢ã€ãã 21. ã€ã³ã¿ãã§ãŒã¹ã¯å®è£
ããæ¹ãèããŠèšèšããªããã
- ããã©ã«ãã¡ãœããã远å ãããšãã®æ³šæç¹
- ConcurrentModificationException
é
ç® 22. ã€ã³ã¿ãã§ãŒã¹ã¯åãå®çŸ©ããç®çã§ã®ã¿äœ¿çšããŠãã ããã
- 宿°ãå®çŸ©ããç®çã§ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããªãã§ãã ããã
- 宿°ãå®çŸ©ããæ¹æ³
ã¢ã€ãã 23.ã¿ã°ä»ãã¯ã©ã¹ã§ã¯ãªãã¯ã©ã¹éå±€ãæŽ»çšããŸãã
- ã¿ã°ä»ãã¯ã©ã¹ã®æ¬ ç¹
- éå±€ãæŽ»çšãã
ã¢ã€ãã 24. ã¡ã³ããŒã¯ã©ã¹ã¯ã§ããã ã static ã«ããªããã
- éçã¡ã³ããŒã¯ã©ã¹
- ééçã¡ã³ããŒã¯ã©ã¹
- å¿åã¯ã©ã¹
- å°åã¯ã©ã¹
- ã¢ããã¿ãã¿ãŒã³
ã¢ã€ãã 25.ãããã¬ãã«ã®ã¯ã©ã¹ã¯1ã€ã®ãã¡ã€ã«ã«1ã€ã ããå
¥ããŸãã
ã¢ã€ãã 26. ãã¿ã€ãã¯äœ¿çšããªãã§ãã ããã
- ãžã§ããªãã¯çšèªã®æŽç
- ãã©ã¡ãŒã¿åã¿ã€ãã䜿çšããçç±
- GenericRepository
ã¢ã€ãã 27. 鿀æ»èŠåãåé€ããŸãã
- 鿀æ»(unchecked)èŠå
- @SuppressWarning
- ã¢ãããŒã·ã§ã³
ã¢ã€ãã 28.é
åã§ã¯ãªããªã¹ããæŽ»çšããªããã
- å
±å€ vs äžå
¬å€
- @SafeVarangs
ã¢ã€ãã 29. ç°çãªããžã§ããªãã¯ã¿ã€ãã«ããŠãã ããã
- é
åã䜿çšããã³ãŒãããžã§ããªãã¯ã«å€æŽãã
- éå®åãã©ã¡ãŒã¿
ã¢ã€ãã 30. ç°çãªããžã§ããªãã¯ã¡ãœããã§äœããã
- ãžã§ããªãã¯ã·ã³ã°ã«ãã³ãã¡ã¯ããªãŒ
- ååž°çã¿ã€ãéå®
ã¢ã€ãã 31.éå®çãªã¯ã€ã«ãã«ãŒãã䜿çšããŠAPIã®æè»æ§ãé«ããŸãã
- PECS (Producer-Extends, Consumer-Super)
- ã¯ã€ã«ãã«ãŒã
- ã¿ã€ãæšè«
ã¢ã€ãã 32.ãžã§ããªãã¯ãšå¯å€åŒæ°ãäžç·ã«äœ¿ããšãã¯æ
éã«ããªããã
- ãžã§ããªãã¯å¯å€åŒæ°
- ThreadLocal
- ThreadLocalRandom
ã¢ã€ãã 33. ã¿ã€ãå®å
šç°çš®ã³ã³ãããèæ
®ããªããã
- ã¿ã€ãå®å
šç°çš®ã³ã³ãã
- ã¿ã€ãããŒã¯ã³
- ã¹ãŒããŒã¿ã€ãããŒã¯ã³
- éå®åããŒã¯ã³
ãã¹ãŠã®Javaéçºè
ã®å¿
èªæžã
äžç·ã«èªããããã«ð
ãšãã§ã¯ãã£ãJavaãããç°¡åãã€å®å
šã«å匷ããããã®ã¬ã€ããæäŸããŸãããšãã§ã¯ãã£ãJavaã§ç޹ä»ããéèŠãªå
å®¹ãæŽçããããå®å
šã«çè§£ããããã«å¿
èŠãªèæ¯ç¥èã詳ããäŒããŠããŸãã
åèš5éšã«ããã£ãŠé²è¡ããããšãã§ã¯ãã£ãJavaå®ç§æ»ç¥ãã·ãªãŒãºã®ä»åã®è¬çŸ©ã¯ã·ãªãŒãºã®äžã§2çªç®ã®è¬çŸ©ã§ããæåã®è¬çŸ©ãå
ã«åè¬ããæ¬¡ã«åŠç¿ããŠãã ããã
çœæ©ç·ã®ããšãã§ã¯ãã£ãJavaå®ç§æ»ç¥ãéå»è¬çŸ©ð