Slide 1

Slide 1 text

Fundamental Java HASUNUMA Kenji Vice president, GlassFish Users Group Japan k.hasunuma@coppermine.jp Twitter: @btnrouge

Slide 2

Slide 2 text

What’s Java?

Slide 3

Slide 3 text

Javaͷಛ௃ • Φʔϓϯͳن֨Ͱ͋Δ • ৗʹਐԽ͍ͯ͠Δ • ޓ׵ੑΛॏࢹ͍ͯ͠Δ

Slide 4

Slide 4 text

Java͸Φʔϓϯن֨ • ݴޠɺඪ४APIɺԾ૝Ϛγϯ࢓༷ • Java Community ProcessͰඪ४Խ • ݱࡏ͸Φʔϓϯιʔε (GPLv2)

Slide 5

Slide 5 text

wWrite Once, Run Anywhere wݴޠϨϕϧͰϚϧνεϨουରԠ wݫ֨ͳྫ֎ॲཧػߏ w6OJDPEFΛશ໘తʹ࠾༻

Slide 6

Slide 6 text

Write Once, Run Anywhere • OSɺJava VM࣮૷ʹґଘ͠ͳ͍ • ݹ͍ίʔυ͕࠷৽ͷJavaͰ΋ಈ͘ • Blu-ray͔ΒڊେγεςϜ·Ͱ

Slide 7

Slide 7 text

౰ॳ04ͷࠩҟΛ+BWB7.͕ٵऩ͢Δ ݱࡏ+BWB7.͕ଟݴޠͷڞ௨ج൫΁

Slide 8

Slide 8 text

Essential Java

Slide 9

Slide 9 text

JavaͷΤίγεςϜ

Slide 10

Slide 10 text

ΫϥεͱΠϯλϑΣʔε

Slide 11

Slide 11 text

! ! Ϋϥεͷܧঝ

Slide 12

Slide 12 text

" # " Polymorphismͱ͸

Slide 13

Slide 13 text

$%& '&( ( )&%%% ϓϩηεͱεϨου

Slide 14

Slide 14 text

$%& '&( ( )&%%% $%* $%* $%* + + ϓϩηεͱεϨου

Slide 15

Slide 15 text

, "- # ./0 , 0 #- ./0 " " " " " " -""1 +BWBͷೖग़ྗ 4USFBN ݱࡏͰ͸จࣈྻσʔλʹಛԽͨ͠3FBEFS8SJUFS΍ɺ ߴ଎*0Λ࣮ݱ͢Δ$IBOOFM΋Α͘࢖ΘΕ͍ͯΔ

Slide 16

Slide 16 text

+BWBͷύοέʔδ

Slide 17

Slide 17 text

Ϋϥε໊ͷදهํ๏ wݪଇύοέʔδΛؚΉ׬શ໊
 ྫ java.util.List wimportએݴಛఆͷύοέʔδΛলུՄ
 ํ๏ import java.util.List;
 ํ๏ import java.util.*; wjava.langʜৗʹύοέʔδΛলུՄ

Slide 18

Slide 18 text

+BWBΫϥεͷಉҰੑ • Ϋϥε໊͕ಉҰͰ͋Δ • ύοέʔδ໊͕׬શʹҰக͍ͯ͠Δ • ಉ͡Ϋϥεϩʔμʔ͔ΒಡΈࠐ·Εͨ

Slide 19

Slide 19 text

Java Core Parts

Slide 20

Slide 20 text

ΫϥεͱΦϒδΣΫτ • Ϋϥε͸ఆٛͷΈ…࣮ମ͕ͳ͍ • ΦϒδΣΫτ(Πϯελϯε)
 …Ϋϥε͔Β࡞੒࣮ͨ͠ମͷ͜ͱ • ϑΟʔϧυͱϝιου͸ΦϒδΣΫτʹ ଐ͢Δ(㱻static͸Ϋϥεʹଐ͢Δ)

Slide 21

Slide 21 text

java.lang.Object • JavaͷશΫϥεͷεʔύʔΫϥε • ΫϥεͷࠜװʹؔΘΔϝιουΛ࣋ͭ • ϓϦϛςΟϒܕʹରͯ͠ϦϑΝϨϯεܕ ͱݺ͹ΕΔ͜ͱ΋͋Δ

Slide 22

Slide 22 text

java.lang.Object ͷϝιου equals ಉҰνΣοΫʹ࢖͏ ※ݪଇͱͯ͠ΦʔόʔϥΠυ͢Δ hashCode toString จࣈྻදݱΛฦ͢ ※༻్͸༷ʑ wait εϨου੍ޚ༻ϝιου ※௨ৗ͸Concurrency UtilitiesΛܦ༝ ͯ͠࢖༻͢Δ(ΦʔόʔϥΠυෆՄ) notify notifyAll clone ίϐʔ(࠷ۙ͸࢖ΘΕͳ͍) finalize ޙॲཧ(௨ৗ͸ΦʔόʔϥΠυ͠ͳ͍)

Slide 23

Slide 23 text

Object o = new Object();

Slide 24

Slide 24 text

Object o = new Object();

Slide 25

Slide 25 text

Object o = new Object(); ӈลͱಉ͡Ϋϥε PS εʔύʔΫϥε PS ࣮૷ΠϯλϑΣʔε

Slide 26

Slide 26 text

Object o = new ArrayList();

Slide 27

Slide 27 text

Ωϟετ Object o = new ArrayList(); • objͷఆٛ͸Objectɺ࣮ମ͸ArrayList • ΞΫηε͸ఆٛΛ௨ͯ͡ߦ͏ • ࣮ମ΁ͷ௚઀ΞΫηεˠΩϟετ ArrayList list = (ArrayList) o; w Ωϟετ=αϒΫϥεͷఆٛͰΞΫηε w Ωϟετޙ͸࣮ମʹ௚઀ΞΫηεՄೳ

Slide 28

Slide 28 text

ϓϦϛςΟϒܕ • ΫϥεͰ͸ͳ͍σʔλܕ • ରԠ͢ΔΫϥε(ϥούʔ)Λ࣋ͭ • auto-boxing/unboxing:
 ϓϦϛςΟϒܕͱϥούʔͷ૬ޓม׵

Slide 29

Slide 29 text

ϓϦϛςΟϒܕ ϥούʔΫϥε boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double

Slide 30

Slide 30 text

഑ྻ • ಉ͡ΫϥεorϓϦϛςΟϒܕͷ࿈ଓ • ԋࢉࢠ [ ] ͰཁૉʹΞΫηε͢Δ • ಺෦తʹ͸java.lang.ArrayΫϥε

Slide 31

Slide 31 text

Object[ ] o = new Object[8]; P͸0CKFDUͷ഑ྻ ཁૉ਺͸ࢦఆ͠ͳ͍ ഑ྻͷཁૉ਺͸ ඞͣఆ਺ޙͰมߋෆՄ ഑ྻͷ৔߹ɺࠨลͱӈล͸ಉ͡Ϋϥε

Slide 32

Slide 32 text

ͦͷଞͷॏཁͳτϐοΫ • Generics (J2SE 5.0) • Annotation (J2SE 5.0) • Project Coin (Java SE 7) • Collections Framework (J2SE 1.2) • New I/O (J2SE 1.4 & Java SE 7) • Concurrency Utilitites (J2SE 5.0 & Java SE 7)

Slide 33

Slide 33 text

Fundamental Java HASUNUMA Kenji k.hasunuma@coppermine.jp Twitter: @btnrouge