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

Trap Questions in Java and Obj-C

417.72KI
December 03, 2019

Trap Questions in Java and Obj-C

417.72KI

December 03, 2019
Tweet

More Decks by 417.72KI

Other Decks in Programming

Transcript

  1. 4XJGU,PUMJOѪ޷ձ
    7PM
    !(.0ϖύϘ

    View Slide

  2. 4XJGUͱ,PUMJO

    View Slide

  3. 4XJGUͱ,PUMJO

    View Slide

  4. +BWBͱ0CKFDUJWF$
    ͷ࿩Λ͠·͢

    View Slide

  5. ͳΜͰࠓ͞Β+BWB0CK$

    View Slide

  6. ͳΜͰࠓ͞Β+BWB0CK$
    w ࠓͷ࣌୅ΞϓϦ͸4XJGU,PUMJOͰॻ͘ͷ͕౰ͨΓલ
    w ࠓͲ͖+BWB0CK$ͳΜͯ৮ΒΜ΍Ζ

    View Slide

  7. Ռͨͯ͠ຊ౰ʹͦ͏ͩΖ͏͔ʁ

    View Slide

  8. Ռͨͯ͠ຊ౰ʹͦ͏ͩΖ͏͔ʁ
    w 044ϥΠϒϥϦ͸ϦϦʔε͞Εͨ࣌୅΍ϥΠϒϥϦͷಛ
    ੑ্+BWB0CK$Ͱॻ͔Ε͍ͯΔ΋ͷ΋·ͩ·ͩଟ͍
    w ࣮૷Λ֬ೝͨ͠Γ13Λग़ͨ͠Γ͢ΔͳΒ΍ͬͺΓͦͷล
    ͷ஌ࣝ͸ඞཁ

    View Slide

  9. ͱ͍͏͜ͱͰ

    View Slide

  10. ҙ֎ͱҾ͔͔ͬΔʂʁ
    ݴޠ࢓༷ΫΠζ
    +BWB0CKFDUJWF$ฤ

    View Slide

  11. w 5BLVIJSP.VUBBLB௣໊Նر ,*

    w 4&೥ 8FC J04 "OESPJE ৽ਓݚमߨࢣFUD

    J04 डୗ։ൃ
    ೥൒

    J04 ࣗࣾ։ൃ
    ࠓίί
    w 5XJUUFS [email protected]
    (JU)VC,*
    w 4XJGUѪ޷ձࢀՃप೥

    ΋͏΍ΜΧϨʔ͸೥໨
    ͓લ୭Α

    View Slide

  12. #VJME$POpHTXJGU
    ελʔ͍ͩ͘͞

    View Slide

  13. ݴޠ࢓༷ΫΠζ
    w +BWB໰
    w 0CKFDUJWF$໰

    View Slide

  14. +BWBฤ

    View Slide

  15. ୈ໰

    View Slide

  16. ࣍ͷίʔυͷಈ͖͸Ͳ͏ͳΔʁ

    View Slide

  17. ࣍ͷίʔυͷಈ͖͸Ͳ͏ͳΔʁ
    public class Sample {
    public static void main(String... args) {
    while (false) {
    System.out.println("hoge");
    }
    }
    }

    View Slide

  18. ࣍ͷίʔυͷಈ͖͸Ͳ͏ͳΔʁ
    public class Sample {
    public static void main(String... args) {
    while (false) {
    System.out.println("hoge");
    }
    }
    }
    lIPHFz͕ճ͚ͩग़ྗ͞ΕΔ Կ΋ى͖ͳ͍
    ίϯύΠϧΤϥʔ ࣮ߦ࣌Τϥʔ

    View Slide

  19. ࣍ͷίʔυͷಈ͖͸Ͳ͏ͳΔʁ
    public class Sample {
    public static void main(String... args) {
    while (false) {
    System.out.println("hoge");
    }
    }
    }
    lIPHFz͕ճ͚ͩग़ྗ͞ΕΔ Կ΋ى͖ͳ͍
    ίϯύΠϧΤϥʔ ࣮ߦ࣌Τϥʔ

    View Slide

  20. ղઆ
    public class Sample {
    public static void main(String... args) {
    while (false) {
    System.out.println("hoge");
    }
    }
    } 6OSFBDIBCMFDPEF

    View Slide

  21. ୈ໰

    View Slide

  22. ୈ໰Λ౿·͑ͯ
    public class Sample {
    public static void main(String... args) {
    while (false) {
    System.out.println("hoge");
    }
    }
    }

    View Slide

  23. ࣍ͷίʔυͷಈ͖͸Ͳ͏ͳΔʁ
    public class Sample {
    public static void main(String... args) {
    do {
    System.out.println("hoge");
    } while (false);
    }
    }

    View Slide

  24. ࣍ͷίʔυͷಈ͖͸Ͳ͏ͳΔʁ
    public class Sample {
    public static void main(String... args) {
    do {
    System.out.println("hoge");
    } while (false);
    }
    }
    lIPHFz͕ճ͚ͩग़ྗ͞ΕΔ Կ΋ى͖ͳ͍
    ίϯύΠϧΤϥʔ ࣮ߦ࣌Τϥʔ

    View Slide

  25. ࣍ͷίʔυͷಈ͖͸Ͳ͏ͳΔʁ
    public class Sample {
    public static void main(String... args) {
    do {
    System.out.println("hoge");
    } while (false);
    }
    }
    lIPHFz͕ճ͚ͩग़ྗ͞ΕΔ Կ΋ى͖ͳ͍
    ίϯύΠϧΤϥʔ ࣮ߦ࣌Τϥʔ

    View Slide

  26. public class Sample {
    public static void main(String... args) {
    do {
    System.out.println("hoge");
    } while (false);
    }
    }
    ղઆ
    EPXIJMF͸ࣄޙධՁ ճॲཧͨ͠ޙʹ৚݅ࣜΛ൑ఆ

    View Slide

  27. ղઆ
    ॲཧ

    ݅
    XIJMF
    ॲཧ

    ݅
    EPXIJMF

    View Slide

  28. 0CKFDUJWF$ฤ

    View Slide

  29. ୈ໰

    View Slide

  30. Կ͕ग़ྗ͞ΕΔʁ

    View Slide

  31. Կ͕ग़ྗ͞ΕΔʁ
    if (@0) {
    NSLog(@"true");
    } else {
    NSLog(@"false");
    }

    View Slide

  32. Կ͕ग़ྗ͞ΕΔʁ
    if (@0) {
    NSLog(@"true");
    } else {
    NSLog(@"false");
    }
    USVF GBMTF

    View Slide

  33. Կ͕ग़ྗ͞ΕΔʁ
    if (@0) {
    NSLog(@"true");
    } else {
    NSLog(@"false");
    }
    USVF GBMTF

    View Slide

  34. ղઆ
    w @0͸4/VNCFSOVNCFS8JUI*OU>ͷ4ZOUBY4VHBS
    w /4/VNCFS͸ΦϒδΣΫτ
    w ΦϒδΣΫτͱͯ͠͸ଘࡏ͢ΔͨΊɺ

    USVFͱͯ͠൑ఆ͞ΕΔ
    w @NO΋ಉ༷

    View Slide

  35. ୈ໰

    View Slide

  36. Կ͕ग़ྗ͞ΕΔʁ

    View Slide

  37. Կ͕ग़ྗ͞ΕΔʁ
    [
    "hoge",
    "fuga",
    null,
    "foo",
    "bar"
    ]
    TBNQMFKTPO
    NSArray *array = ... // JSONΛಡΈࠐΉॲཧ
    if (array[2]) {
    NSLog(@"true");
    } else {
    NSLog(@"false");
    }

    View Slide

  38. Կ͕ग़ྗ͞ΕΔʁ
    USVF GBMTF
    [
    "hoge",
    "fuga",
    null,
    "foo",
    "bar"
    ]
    TBNQMFKTPO
    NSArray *array = ... // JSONΛಡΈࠐΉॲཧ
    if (array[2]) {
    NSLog(@"true");
    } else {
    NSLog(@"false");
    }

    View Slide

  39. Կ͕ग़ྗ͞ΕΔʁ
    USVF GBMTF
    [
    "hoge",
    "fuga",
    null,
    "foo",
    "bar"
    ]
    TBNQMFKTPO
    NSArray *array = ... // JSONΛಡΈࠐΉॲཧ
    if (array[2]) {
    NSLog(@"true");
    } else {
    NSLog(@"false");
    }

    View Slide

  40. ղઆ
    w /4"SSBZ౳ͷίϨΫγϣϯʹ͸OJMΛೖΕΔ͜ͱ͕Ͱ͖ͳ
    ͍
    w େମखஈͱͯ͠/4/VMMͱ͍͏ΫϥεΛ࢖͏
    w ͜ͷ࣌BSSBZ<>͔ΒऔΓग़͞ΕΔͷ͸4/VMMOVMM>ͱ͍͏
    γϯάϧτϯΦϒδΣΫτ
    w ΦϒδΣΫτͳͷͰUSVFͱͯ͠൑ఆ͞ΕΔ

    View Slide

  41. /4/VMMͱOJM
    NSLog(@"%@", nil); // -> (null)
    NSLog(@"%@", [NSNull null]); // ->
    ഑ྻʹฆΕ͍ͯΔOVMM͸Α͘ݟམͱ͕ͪ͠

    View Slide

  42. ͜ΜͳΜ஌ͬͯͯԿʹͳΔʁ

    View Slide

  43. ͜ΜͳΜ஌ͬͯͯԿʹͳΔʁ
    w +BWB
    w 0$+1 0SBDMFೝఆࢿ֨
    Ͱ͜͏͍͏໰୊͕ग़୊͞ΕΔ
    w ࣮຿Ͱ࢖͏ҙຯ͸໓ଟʹແ͍͕ɺ

    ϨΨγʔͳγεςϜͰۃكʹฆΕࠐΜͰΔ
    w Ϧʔμϒϧίʔυͬͯ஌ͬͯΔʁ

    View Slide

  44. ͜ΜͳΜ஌ͬͯͯԿʹͳΔʁ
    w 0CK$
    w ҙ֎ͱݟམͱ͕ͪ͠
    w ͜ͷखͷޡղ͔ΒੜͣΔόά͕࣮ࡍʹ͋ͬͨ
    w 4XJGU΁ͷϦϓϨʔεͰ૝ఆͱҧ͏ಈ͖Λ͢Δͱ͔
    w ಛʹ഑ྻʹฆΕࠐΉOVMM໰୊͸͋Δ͋Δ

    View Slide

  45. ͜ΜͳΜ஌ͬͯͯԿʹͳΔʁ
    w ͍ͭͰʹ
    w ৽ਓݚमͰυϠΕΔ

    View Slide

  46. ·ͱΊ
    w ϨΨγʔݴޠͷཧղ͸ϦϓϨʔεͷڧ͍ຯํ
    w ࢥΘ͵όάΛੜ·ͳ͍ͨΊʹ΋ݴޠ࢓༷ͷཧղ͸େ੾
    w ࣮຿Ͱ࢖Θͳ͍஌͔ࣝͩΒͬͯܰࢹ͠ͳ͍Α͏ʹ

    View Slide

  47. ྑ͍͓೥Λʂ✋

    View Slide