Upgrade to Pro — share decks privately, control downloads, hide ads and more …

これからのJavaのとっかかりを掴む

irof
June 07, 2023

 これからのJavaのとっかかりを掴む

2015-04-08 Java Day Tokyo 2015
2015-10-05 秋の関ジャバ祭り https://kanjava.connpass.com/event/14086/

Slideshareに上げているものと同じです。

irof

June 07, 2023
Tweet

More Decks by irof

Other Decks in Technology

Transcript

  1. ͜Ε͔Βͷ+BWBͷ
    ͱ͔͔ͬΓΛ௫Ή
    ळͷؔδϟόࡇΓ
    LBOKBWB
    !JSPG
    +BWB%BZ5PLZP
    KEU
    !JSPG

    View Slide

  2. +BWBΤϯδχΞཆ੒ಡຊ

    +BWBೖ໳
    ։ൃݱ৔ʹ఻͍͑ͨͷ͜ͱ

    ಓ۩ʹؔ͢ΔΑ͠ͳ͠͝ͱ
    ؔ੢+BWBΤϯδχΞͷձ
    @irof
    IPHFۦಈ
    ϨϏϡΞʔ

    View Slide

  3. ͜Ε͔Β͢Δ࿩
    ͜Ε·Ͱͷ+BWBΛৼΓฦͬͯ
    ͍·Ͳ͖ͷ+BWBͷ଍৔ݻΊ
    ͜Ε͔Βͷ+BWBͷͱ͔͔ͬΓ
    ˞ϓϩάϥϚ޲͚

    View Slide

  4. ͠ͳ͍࿩
    +BWBҎ߱ͷ۩ମతͳ࿩

    View Slide

  5. ͜Ε·Ͱͷ+BWBΛ
    ৼΓฦͬͯ
    ͜Ε·Ͱͷ+BWB+BWB4&͋ͨΓ

    View Slide

  6. ʮ͜Ε·Ͱʯ
    ʹؚ·ΕΔ΋ͷ
    δΣωϦΫε
    FOVN
    ֦ுGPS
    Ξϊςʔγϣϯ
    $PODVSSFODZ6UJMJUJFT

    View Slide

  7. ͜Ε·Ͱͷ+BWBΛΠϝʔδͰ࿩͠·͢
    ˞ݸਓͷײ૝Ͱ͢

    View Slide

  8. +BWBݴޠ

    View Slide

  9. +BWBݴޠ
    ݎ͍ۤ͠
    ੩తܕ෇͚ΦϒδΣΫτࢦ޲ݴޠ
    ৑௕ͳߏจ
    ྼԽ999ݴޠ
    อकత
    ݹष͍
    ख͕ؒଟ͍
    ਐԽ͕஗͍
    ॲཧ͕஗͍
    ىಈ͕஗͍
    Α͘࢖ΘΕ͍ͯΔ
    ϙετ$0#0-
    Ϋϥεϕʔε

    View Slide

  10. +BWB؀ڥ

    View Slide

  11. +BWB؀ڥ
    ࣮੷ࣄྫ͕ଟ͍
    ԯͷσόΠεͰಈ͘
    +7.
    αʔόʔ͔ΒϞόΠϧ·Ͱ
    +7.ݴޠ
    ৘ใ͕ಘ΍͍͢
    ๲େͳϥΠϒϥϦ΍
    ϑϨʔϜϫʔΫ
    ॆ࣮ͨ͠։ൃπʔϧ
    Φʔϓϯιʔε

    View Slide

  12. ͜Ε·Ͱͷ+BWBͷΠϝʔδ
    ݴޠ͸Α͘࢖ΘΕ͍ͯΔ
    ҰํͰωΨςΟϒͳҹ৅΋ڧͦ͏
    ؀ڥ͸جຊతʹϙδςΟϒͳײ͡

    View Slide

  13. Ҏ্͕z͜Ε·Ͱzͷ࿩

    View Slide

  14. +BWB͸มΘ͍ͬͯ·͢
    ʢͨͿΜʣ

    View Slide

  15. ͍·Ͳ͖ͷ+BWBͷ
    ଍৔ݻΊ

    View Slide

  16. ͍·Ͳ͖ͷ+BWBݴޠ
    ͍·Ͳ͖ͷ+BWB+BWB +BWB
    ίʔυͱͱ΋ʹ͓͞Β͍ɻ

    View Slide

  17. +BWBϐοΫΞοϓ
    +BWB4& +43

    1SPKFDU$PJO +43

    /*0 +43

    View Slide

  18. +431SPKFDU$PJO
    USZXJUISFTPVSDFT
    EJBNPOEPQFSBUPS
    $PJOͰ΋Α͘࢖͏΋ͷ

    View Slide

  19. USZXJUISFTPVSDFT
    Closeable resource = create();

    try {

    // resource Λ࢖͏ॲཧ...

    } finally {

    resource.close();

    }
    try (AutoCloseable resource = create()) {

    // resource Λ࢖͏ॲཧ...

    }

    View Slide

  20. EJBNPOEPQFSBUPS
    Map>> map

    = new HashMapString>>>();

    Map>> map

    = new HashMap<>();

    View Slide

  21. ଞͷ$PJOͨͪ
    όΠφϦϦςϥϧ
    ਺஋ϦςϥϧͷΞϯμʔείΞ
    4USJOHTTXJUDI
    ϚϧνΩϟον

    View Slide

  22. ଞͷ$PJOͨͪ
    όΠφϦϦςϥϧ
    ਺஋ϦςϥϧͷΞϯμʔείΞ
    4USJOHTTXJUDI
    ϚϧνΩϟον
    Ϧςϥϧ
    ͋Μ·Γ
    ॻ͔ͳ͍

    View Slide

  23. 4USJOH4XJUDI
    switch (str) {

    case "java":

    // ...

    break;

    case "groovy":

    // ...

    break;

    default:

    // ...

    }
    OVMM͜Θ͍
    CSFBLΊΜͲ͍
    JGͰॻ͘ΑΓ

    ߦ਺ଟ͍

    View Slide

  24. ϚϧνΩϟον
    try {

    this.getClass().getMethod("method").invoke(this);

    } catch (IllegalAccessException

    | NoSuchMethodException

    | InvocationTargetException e) {

    // ...

    }
    try {

    this.getClass().getMethod("method").invoke(this);

    } catch (ReflectiveOperationException e) {

    // ...

    }
    ϦϑϨΫγϣϯ͸جఈྫ֎ΫϥεͷDBUDIͰΑ͛͞

    View Slide

  25. +43/*0
    +BWBͰϑΝΠϧΛѻ͏ؾʹͳΕΔʢॏཁʣ

    View Slide

  26. /*0
    List lines = new ArrayList();

    BufferedReader br = new BufferedReader(

    new InputStreamReader(

    new FileInputStream(fileName),
    StandardCharsets.UTF_8));

    for (String line; (line = br.readLine()) != null; ) {

    lines.add(line);

    }
    List lines = Files.readAllLines(path);
    🌾DMPTFলུ

    View Slide

  27. +BWBϐοΫΞοϓ
    +BWB4& +43

    1SPKFDU-BNCEB +43

    %BUFBOE5JNF"1* +43

    View Slide

  28. +43
    1SPKFDU-BNCEB
    -BNCEB&YQSFTTJPO
    .FUIPE3FGFSFODF
    0QUJPOBM

    View Slide

  29. -BNCEB&YQSFTTJPO
    (String arg) -> { /* ͳΜ͔ॲཧ */ }
    arg -> /* ͳΜ͔ࣜ */
    System.out::println
    .FUIPE3FGFSFODF

    View Slide

  30. 0QUJPOBM
    MBNCEBͱͷซ༻͕جຊ
    JT1SFTFOU࢖͏ͱΠϚΠν
    OVMMΛࠜઈ΍͠ʹͯ͠΄͍͠
    Optional java = Optional.of(“java");

    java.ifPresent(System.out::println);

    View Slide

  31. +43
    %BUFBOE5JNF"1*
    %BUF5JNF%BUF5JNF
    -PDBM;POFE
    %BUF5JNF'PSNBUUFS
    ͳͲʜʜ

    View Slide

  32. ͋Θͤͯݟͯཉ͍͠

    View Slide

  33. ͍·Ͳ͖ͷ+BWB؀ڥ
    ϥΠϒϥϦ΍ϑϨʔϜϫʔΫ
    *%&
    ϏϧυγεςϜ

    View Slide

  34. ϥΠϒϥϦ΍
    ϑϨʔϜϫʔΫ
    ૬มΘΒͣͨ͘͞Μ͋Δ
    Ή͠Ζ૿͑ΔҰํ
    ੈ୅ަ୅΍ํ޲ੑͷมಈ͕ىͬͯͨ͜Γ
    +BWB&&΍4QSJOH#PPUͳͲͷྲྀΕ

    View Slide

  35. *%&
    &DMJQTFͷಠஃ৔͔Βબ୒΁
    &DMJQTF
    /FU#FBOT
    *OUFMMJ+*%&"

    View Slide

  36. ϏϧυγεςϜ
    "OU.BWFO͔Β(SBEMF΁ʁ
    ҰؾʹมΘΔؾ഑͸ͳͦ͞͏
    ঃʑʹมΘ͍ͬͯΔҹ৅͸͋Δ

    View Slide

  37. ͜Ε·Ͱ͍·Ͳ͖
    ݴޠ
    ݹष͞΍৑௕͞͸১ΘΕͭͭ͋Δ
    ؀ڥ
    ͜Ε·ͰΛϕʔεʹΑΓڧྗʹ

    View Slide

  38. ࣌ʹ
    l͍·Ͳ͖ͷ+BWBz
    ࢖ͬͯ·͢ʁ

    View Slide

  39. ͍·Ͳ͖ͷ+BWB
    ͳΜ͔ඍົͳײ͕͢͡ΔɻͳΜͰʁ
    ࢖͑Δਓ͕͍ͳ͍ʁ
    ಈ͔ͳ͍ʁ

    View Slide

  40. ࢖͑Δਓ͕͍ͳ͍ʁ
    ࢖ͬͯͳ͍΋ͷΛ࢖͑ΔΑ͏ʹɺͳΜͯ

    ͳΔΘ͚͕ͳ͍ɻ
    ࢖ͬͯͳ͍͔Β࢖Θͳ͍ͱ͔ݴͬͯΔͱ

    ͍ͭ·Ͱ΋มΘΒͳ͍ɻ

    View Slide

  41. ࢖͑Δਓ͕͍ͳ͍ʁ
    +BWB4& ͷ৘ใ͸े෼ग़ճͬͯΔ
    ͦͷลΛݟͯษڧ͍ͯ͠Δํʑ΋ډΔ
    ʮ࢖ͬͨ͜ͱͳ͍ਓ͕ଟ͍ʯͳΒɺ࢖͑͹͍
    ͍͚ͩͷ࿩
    ࢖ͬͨ͜ͱͷ͋Δਓ͸૿͑Δ͜ͱ͸͋ͬͯ
    ΋ݮΓ͸͠ͳ͍ͷ͔ͩΒ

    View Slide

  42. ಈ͔ͳ͍ʁ
    όʔδϣϯΞοϓͨ͠Βಈ͔ͳ͘ͳΔͱݴ͏
    ࿩͕ͪΒ΄Βͱ

    View Slide

  43. +BWBͷޓ׵ੑ

    View Slide

  44. ;ͭ͏ʹແཧͳ͜ͱ
    +%,Ͱ;ͭ͏ʹίϯύΠϧͨ͠
    DMBTTϑΝΠϧΛ+3&͸ಡΊͳ͍
    -BNCEB
    ஌ΒΜ͕ͳʜʜ
    ͱ͸͍͑ʜʜ
    +3&͞Μ

    View Slide

  45. ޙํޓ׵ੑ͸΄΅໰୊ແ͍
    +4&࣌୅ͷίʔυ͸ŠŠ
    ͍͍ͩͨ+%,ͰίϯύΠϧՄೳ
    +4&࣌୅ͷDMBTT΍KBS͸ŠŠ
    ͍͍ͩͨ+3&Ͱ࣮ߦՄೳ

    View Slide

  46. ޙํޓ׵ੑ͸΄΅໰୊ແ͍
    +4&࣌୅ͷίʔυ͸ŠŠ
    ͍͍ͩͨ+%,ͰίϯύΠϧՄೳ
    +4&࣌୅ͷDMBTT΍KBS͸ŠŠ
    ͍͍ͩͨ+3&Ͱ࣮ߦՄೳ

    View Slide

  47. ӡ͕ѱ͍ͱࣄނΔ
    ม਺໊ʹFOVNΛ࢖ͬͯͯίϯύΠϧΤϥʔ
    ΠϯλϑΣʔεʹϝιου͕૿͑ͯίϯύΠϧ
    Τϥʔ
    ࠶ίϯύΠϧͤͣಈ͔ͨ͠Β࣮ߦ࣌ྫ֎
    ϦϑϨΫγϣϯͰऔΕΔॱ൪͕มΘͬͯ༧ظ
    ͠ͳ͍ྫ֎
    ͱ͸ݴ͑͜Ε͸ӡ͕ѱ͍࿩

    View Slide

  48. +BWBࣗମ͸ͱ΋͔͘
    ϥΠϒϥϦ͸ͭΒ͍

    View Slide

  49. ରԠ͍ͯ͠ͳ͍ϥΠϒϥϦ͕͋Δ

    View Slide

  50. ରԠ͍ͯ͠ͳ͍ϥΠϒϥϦ͕͋Δ
    ର৅ϥΠϒϥϦͷΞοϓσʔτ

    View Slide

  51. ରԠ͍ͯ͠ͳ͍ϥΠϒϥϦ͕͋Δ
    ର৅ϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ

    View Slide

  52. ରԠ͍ͯ͠ͳ͍ϥΠϒϥϦ͕͋Δ
    ର৅ϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ
    ґଘ͢ΔϥΠϒϥϦͷΞοϓσʔτ
    ͭΒ͍

    View Slide

  53. +BS)FMM
    ੲ͸KBSΛखಈͰ͔͖ूΊΔ͜ͱʹΑΔ࡞ۀ஍
    ࠈΛҙຯ͍ͯͨ͠
    Ϗϧυπʔϧ͕ґଘΛࣗಈͰղܾ͢Δ͜ͱͰ
    ऴΘ͔ͬͨʹࢥ͕͑ͨ
    ࠷ۙ͸KBSؒͷґଘ͕ಊʑ८Γ͢Δ͜ͱʹΑΔ
    ແؒ஍ࠈΛҙຯͯ͠ΔΑ͏ͳؾ͕͢Δ

    View Slide

  54. ϥΠϒϥϦͱޓ׵ੑ
    Ϋϥεͷ౷ഇ߹ɺجఈΫϥε΍ΠϯλϑΣʔ
    εͷมߋʹΑΓιʔεޓ׵͸͋ͬ͞ΓଛͳΘ
    Εͯ͠·͏ʢ͜ͱ΋͋Δʣ
    ϦϑϨΫγϣϯͷಈ࡞΍ɺΫϥεϑΥʔϚο
    τͳͲɺ௨ৗͷޓ׵ੑ΄ͲڧݻʹकΒΕ͍ͯ
    ͳ͍΋ͷʹґଘ͍ͯ͠Δʢ͜ͱ΋͋Δʣ
    ڧྗͳϥΠϒϥϦ΄Ͳ܏޲͸ڧ͍ʢؾ͕͢Δʣ

    View Slide

  55. ϥΠϒϥϦͱޓ׵ੑ
    +BWBͷڧΈͷ͸ͣͷʮϥΠϒϥϦͷॆ࣮ʯ
    ޓ׵ੑΛߟ͑ΔͱωοΫʹͳΔ
    όʔδϣϯΞοϓ࣌͸ಛʹݦஶ
    ৐Γӽ͑ͳ͍ͱz͍·Ͳ͖ͷ+BWBz͕࢖͑ͳ͍

    View Slide

  56. ͱ͸͍͑
    ద੾ͳॱ൪Ͱόʔδϣϯ͍͚͋͛ͯ͹ɺҙ֎
    ͱ͢ΜͳΓ্͛ΒΕͨΓ͢Δɻ
    ϝδϟʔόʔδϣϯΞοϓز͔ͭ΍͚ͬͨͲɺ
    ϋϚΔͷ͸ʮ·͍͔ͨͭ͜ʯͱ͍͏Ұ෦Ͱ͢ɻ

    View Slide

  57. ͳΜͱ͔ͳΔ

    View Slide

  58. ੜ͖ͨ+BWBΛ࢖͍ͬͯͨ͘Ίʹ΋ɺ͍·Ͳ͖
    ͷ+BWBΛ஌ͬͯ࢖͍͖ͬͯ·͠ΐ͏ɻ

    View Slide

  59. ͜Ε͔Βͷ+BWBͷ
    ͱ͔͔ͬΓ

    View Slide

  60. ͜Ε͔Βͷ+BWB
    1SPKFDU+JHTBX
    1SPKFDU7BMIBMMB
    1SPKFDU1BOBNB
    ࠷ॳʹݴͬͨ௨Γ
    ͜ͷลͷ࿩͸͠·ͤΜ

    View Slide

  61. ͜Ε·Ͱˠ͜Ε͔Β
    Ұ൪ͷҧ͍͸ʮ+BWBࣗ਎͕੒௕͢Δʯ͜ͱ
    গ͠લʹ+BWB4&͕ग़ͯ
    ͦͷ೥ͪΐ͍ޙʹ+BWB4&͕ग़ͯ
    ͨͿΜ೥͘Β͍ޙʹ+BWB4&͕ग़Δ

    View Slide

  62. ೥લ

    ೥લ

    View Slide

  63. J2SE 5.0
    ೥લ

    ೥લ

    View Slide

  64. J2SE 5.0
    Java SE 6
    ೥લ

    ೥લ

    View Slide

  65. J2SE 5.0
    Java SE 6 Java SE 7
    ೥લ

    ೥લ

    View Slide

  66. J2SE 5.0
    Java SE 6 Java SE 7
    Java SE 8
    ೥લ

    ೥લ

    View Slide

  67. J2SE 5.0
    Java SE 6 Java SE 7
    Java SE 8
    ೥લ

    ೥લ

    ໿೥

    View Slide

  68. ̑೥ͷϒϥϯΫ
    +BWB͔ΒΛݟૹͬͨΒܖػΛࣦͬͨ
    +BWBͰ࡞ͬͨΒػձ͕དྷͳ͔ͬͨ
    ্͛ΒΕͳ͍··ಈ͚ͳ͘ͳͬͯ͠·ͬͨ
    J2SE 5.0
    Java SE 6 Java SE 7
    Java SE 8
    ໿೥

    View Slide

  69. ͱ͸ݴ͑͜Ε͔Β͸ߋ৽͞Ε͍ͯ͘ͷͰɺ

    ண͍͍͖͍ͯͨͱ͜ΖͰ͸͋Δɻ

    View Slide

  70. ߋ৽ͯ͠Έͨ࿩ͦͷ
    ࣮ߦ؀ڥ͚ͩ+BWBʹͯ͠Έͨ
    ίʔυɺίϯύΠϥ͸+BWBͷ··
    ϥΠϒϥϦ͸ߋ৽ͤͣ
    ͍͚ͨˠͳΜͷ໰୊΋ͳ͘ಈ͍͍ͯΔ

    View Slide

  71. ߋ৽ͯ͠Έͨ࿩ͦͷ
    ࣮ߦ؀ڥ͚ͩ+BWBʹͯ͠Έͨ
    ίʔυɺίϯύΠϥ͸+BWBͷ··
    ϥΠϒϥϦ͸ߋ৽ͤͣ
    ͩΊͩͬͨˠ࣮ߦ؀ڥͷόʔδϣϯ֬ೝ͠
    ͍ͯΔϥΠϒϥϦ͕͋ͬͨʜʜ

    View Slide

  72. ߋ৽ͯ͠Έͨ࿩ͦͷ
    ίϯύΠϥ͚ͩ+BWBʹͯ͠Έͨ UBSHFU

    ίʔυɺ࣮ߦ؀ڥ͸+BWBͷ··
    ϥΠϒϥϦ͸ߋ৽ͤͣ
    ͍͚ͨˠͳΜͷ໰୊΋ͳ͘ಈ͍͍ͯΔ

    View Slide

  73. ߋ৽ͯ͠Έͨ࿩ͦͷ
    ίϯύΠϥ࣮ߦ؀ڥͱ΋ʹ+BWBʹͯ͠Έͨ
    ίʔυ͸+BWBͷ··
    ϥΠϒϥϦ͸ߋ৽ͤͣ
    ͍͚ͨˠͳ͔ͥಈ͍ͯ͠·ͬͨ
    ͚ͲMBNCEBͭॻ͍ͨॠؒམͪͨ

    View Slide

  74. ͜Ε͔Βͷͱ͔͔ͬΓ
    +BWB͸ੜ͖ͯͯɺݩؾʹಈ͖࢝Ίͨ
    ͦΜͳ+BWBʹৼΓམͱ͞Εͳ͍ͨΊʹ

    View Slide

  75. ݴޠͷͱ͔͔ͬΓ
    -BNCEBʹ͍ͭͯ͜ΕͯΔʁ
    (SPPWZ΍4DBMBͳΜ͔Λ΍ͬͯͨਓ͸ฏવ
    ͱѻͬͯΔ
    ࠓޙͷ+BWBʹ௥ਵ͢ΔͨΊʹผͷݴޠʹ΋৮
    Ε͓ͯ͘ͱ͍͍͔΋

    View Slide

  76. ؀ڥͷͱ͔͔ͬΓ
    Ϗϧυπʔϧ͸ΑΓਐԽ͍ͯ͘͠͸ͣ
    ΋ͬͱେ͖͘ͳ؀ڥΛϏϧυͦ͠͏
    ͦͷ͏ͪ+BS)FMMΛղফͯ͘͠ΕΔ͔΋
    ݱঢ়Ͱ΋ཧղ͓͚ͯ͠͹े෼ͳ෢ثʹͳΔ

    View Slide

  77. લʹਐΉͳΒ͹
    ৽چͷ৘ใͷݟۃΊ͸೉͘͠ͳ͍ͬͯ͘
    ෆ҆ͳϥΠϒϥϦͷ૊Έ߹Θͤ΋
    ΞμϓλΛ࣮૷͢Δඞཁ΋͋Δ͔΋
    ಈ͔ͯ͠ݕূ͢Δࣗಈςετ͸·͢·͢ॏཁ
    ʹͳͬͯ͘Δͱࢥ͏

    View Slide

  78. ཹ·Δ༐ؾ
    ແཧͤͣཹ·Δબ୒ࢶ΋ߟྀʹೖΕΔ
    ݹ͍ίʔυɺݹ͍ίϯύΠϥɺ৽͍࣮͠ߦ
    ؀ڥͱ͔Ͱ΋͍͍ͩͨେৎ෉
    ҆શࡦΛͱΔͳΒ࣮ߦ؀ڥ΋αϙʔτड͚Ε
    ʢۚͰͿΜԥΕ͹ͳΜͱ͔ͳΔʣ
    &OEPG1VCMJD6QEBUFT&0-

    View Slide

  79. प೥Λܴ͑ɺ+BWB͸·͢·͢ݩؾ
    ͜Ε͔Β΋+BWBͱڞʹߦͨ͘Ίʹ

    ͓ޓ͍ʹ৘ใग़͠߹͍͖ͬͯ·ͤΜ͔ʁ
    ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide