Share
Embed
Transcript
56 slides
-
Shin Tanimoto 26 Java Years - ͜Ε͕ࠓͷJavaͩʂ <OSS X Users
Meeting> #31 ʙΦʔϓϯιʔεϓϩδΣΫτΛࢧ͑Δݴޠͨͪʙ -
୩ຊ ৺ (Shin Tanimoto) ຊJavaϢʔβʔάϧʔϓ Ϧʔμʔʢදʣ Java Champion / Oracle
Groundbreaker Ambassador Everforth / Acroquest Technologyͷ2ࣾͰಇ͘ΤϯδχΞ ෭ۀʹͯ֎෦ސʮϨϯλϧ͢ΔਓʯͳͲ ੜ͖͕͍BABYMETALͷϥΠϒࢀઓ ࣗݾհ 2 Twitter : @cero_t ஶॻ : Javaຊ֨ೖ -
จࣈྻஔϝιου Javaݹ͍ʁ 10 String str = “12345-12345-12345"; str.replace('1', 'x');
→ "x2345-x2345-x2345"ɹ1จࣈ͚ͩࢦఆͯ͠શஔ str.replaceFirst("\\d+", "xyz"); → "xyz-12345-12345"ɹਖ਼نදݱͰࢦఆͯ͠1ճஔ str.replaceAll("\\d+", "xyz"); → "xyz-xyz-xyz"ɹਖ਼نදݱͰࢦఆͯ͠શஔ str.replace("123", "xyz"); → “xyz45-xyz45-xyz45"ɹจࣈྻͰࢦఆͯ͠શஔ -
จࣈྻஔϝιου str.replace(‘1’, ‘x’); → ࠷ॳ͔Β͋Δʢ1996ʣ str.replaceFirst(“\\d+”, “xyz”); → Java 1.4ͰՃʢ2002ʣ
str.replaceAll(“\\d+”, “xyz”); →Java 1.4ͰՃʢ2002ʣ str.replace(“123”, “xyz”); → Java 1.5ͰՃʢ2004ʣ ޙํޓੑΛอͭͨΊɺݹ͍APIΛআ͠ͳ͍ Javaݹ͍ʁ 11 -
1995 : Sun MicrosystemsࣾʹΑΓॳ͓൸࿐ 1996 : JDK 1.0ϦϦʔεʢJDK = Java
Development Kitʣ 2006 : OSSԽ 2010 : Oracle͕ࣾSun MicrosystemsࣾΛങऩ 2014 : Java 8ͷϦϦʔεɻؔܕ෩ͷهड़͕Ͱ͖ΔΑ͏ʹͳΓɺվΊ͕ͯू·ΔΑ͏ʹͳͬͨ 2017 : Java 9ͷϦϦʔεɻҎ߱͝ͱʹ࣍όʔδϣϯΛϦϦʔε͢ΔΑ͏มߋ Javaͷ؆୯ͳྺ࢙ 17 -
JavaVM : Java Virtual MachineɻJavaΛಈ࡞ͤ͞ΔԾϚγϯɻJVMͱදه͢Δ Java࣮ߦՄೳͳόΠφϦΛ࡞ΔͷͰͳ͘ɺίϯύΠϧͨ͠ϑΝΠϧΛJavaVM্Ͱಈ࡞ͤ͞Δํࣜ Java SE : ͍ΘΏΔJavaຊମ
JDK : Java Development KitɻίϯύΠϥͳͲͷ։ൃπʔϧ JRE : Java Runtime EnvironmentɻJavaVMඪ४ϥΠϒϥϦͳͲͷ࣮ߦڥ ݱࡏJRE୯ମͰͷఏڙ͞Εͳ͘ͳͬͨ جૅ༻ޠ 18 -
Java EEʢݱJakarta EEʣ : αʔόΞϓϦέʔγϣϯ͚ͷAPαʔόϥΠϒϥϦ܈Λఏڙ Java ME : ΈࠐΈ͚ͷJava JVMݴޠ
: JavaVMͷ্Ͱಈ࡞͢ΔJavaͰ࣮͞Εͨݴޠ ScalaɺKotlinɺGroovyɺJRubyɺJythonͳͲ TCK : Technology Compatibility KitɻJavaͷޓੑΛஅ͢ΔπʔϧΩοτ ֤ࣾͷJava࣮TCKΛ௨ͬͯ͡ΊͯJavaͱೝఆ͞ΕΔ OracleʢݩʑSun Microsystemsʣ͕ఏڙ͍ͯ͠Δ جૅ༻ޠ 19 -
Eclipse Foundationʢ2004-ʣ ॳEclipse IDEͷཧ͕త ͦͷޙɺJakarta EEɺOpenJ9ɺEclipse LinkɺEclipse CollectionsͳͲ ଞͷOSSϓϩμΫτఏڙ͢ΔΑ͏ʹͳͬͨ
Apache Jakarta ProjectͷΘΓʹOSSϓϩμΫτͷड͚ࡼͱͳ͍ͬͯΔ໘͋Δ Eclipse Foundation 26 -
2006ɺJavaͷOSS࣮ͱͯ͠ʮApache Harmonyʯ͕ఏڙ͞Εͨ Apache License 2.0Ͱఏڙʢվมͨ͠ࡍͷιʔείʔυͷެ։͕ٛͳ͍ʣ˞Ҏ߱AL-2.0ͱදه͢Δ ͔࣌͠͠ɺSun MicrosystemsApache HarmonyͷTCKͷఏڙΛڋ൱ TCKΛ௨͍ͯ͠ͳ͍࣮JavaͱೝΊΒΕͳ͍ Apache
HarmonyΈࠐΈͰಈ࡞͕ͨ͠ɺ࣌ͷTCKΈࠐΈʹద༻Ͱ͖ΔJavaΛର֎ͱ͍ͯͨ͠ ಉ͘͡2006ɺSun Microsystems͕Java SEΛOSSԽʢݱࡏͷOpenJDKʣ GPLv2Ϋϥεύεྫ֎͖ͭʢվมͨ͠ࡍʹιʔείʔυͷެ։͕ٛ͋Δʣ˞Ҏ߱GPLv2ͱදه͢Δ Apache harmonyࣄ݅ 35 -
2007ɺSun MicrosystemsTCKΛOSSͱͯ͠ެ։ͨ͠ͷͷ OSS൛ͷJavaϥΠηϯε͕GPLv2ͷͷͷΈΛରͱͨ͠ Apache HarmonyAL-2.0ͩͬͨͨΊର֎ ࣮࣭తʹSun Microsystems͕OSSԽͨ͠JDKͷΈ͕ରͱͳ͍ͬͯͨܗ વApache߅ٞ͠ɺ֤ॴͰ͕ٞى͖ͨ ݁ہApache
HarmonyJavaͱͯ͠ೝΊΒΕͳ͍··ɺ2010ʹ։ൃΛऴྃͨ͠ Apache harmonyࣄ݅ 36 -
ૌুͷ݁ ಛڐݖ৵ → ͍ͯ͠ͳ͍Ͱ֬ఆ JavaϥΠϒϥϦͷ࣮ίʔυΛແஅෳ → ͍ͯ͠Δ͕͔ᷮ͘͝ͳͷͰഛঈۚ0ԁ Java APIͷஶ࡞ݖ৵ →
͍ͯ͠Δ͕ϑΣΞϢʔεͩͱ֬ఆ ܞଳి͕εϚʔτϑΥϯʹஔ͖ΘΓɺJava ME͕ΘΕͳ͘ͳͬͨ͜ͱͰ Sun MicrosystemsOracleϞόΠϧʹ͓͚ΔJavaͷϏδωεΛࣦ͏͜ͱͱͳͬͨ Googleૌুࣄ݅ 40 -
֤͔ࣾΒOpenJDKͷϏϧυʢ͍ΘΏΔσΟετϦϏϡʔγϣϯʣ͕ఏڙ͞ΕΔΑ͏ʹͳͬͨ Red Hat OpenJDKɺEclipse AdoptiumʢچAdoptOpenJDKʣɺAmazon CorrettoͳͲ ֤ࣾͷOpenJDK3͝ͱʹग़ΔόʔδϣϯʹLTSʢLong Term SupportʣΛఏڙ OpenJDK
8ɺ11ɺ17ɺ23ɺɺɺ ແঈαϙʔτظ༷ؒʑ͕ͩɺͨͱ͑AdoptiumͷOpenJDK 82026·Ͱ ेʹ͍ແঈαϙʔτظ͕ؒ͋Δͱݴ͑Δ ༷ʑͳOpenJDK 47 -
͍·ͷओྲྀϓϥοτϑΥʔϜͰαϙʔτ͞Ε͍ͯΔOpenJDKΛར༻͢Δ͜ͱ Red Hat Enterprise LinuxΛ͏ͳΒRed Hat OpenJDK AWSͰ͏ͳΒAmazon Corretto AzureͰ͏ͳΒMicrosoft
Build of OpenJDK ֶशௐࠪ༻ͳΒαϙʔτظؒͷ͍Oracle OpenJDKͰߏΘͳ͍ ֤͕ࣾఏڙ͢ΔOpenJDKʹ͓͍ͯগͣͭ͠ఏڙ͢Δπʔϧ͕ҧͬͨΓɺద༻͞ΕΔύον͕ҟͳΔ͜ͱ ͋ΓಘΔ͕ɺݩͱͳΔOpenJDKಉҰͰ͋ΔͨΊͲΕΛͬͯ99%ಉ͡ɻίΞػೳ100%ಉ͡ ༷ʑͳOpenJDK 48 -
ຖ݄ͷJJUGφΠτηϛφʔ ࣍ճ9/29(ਫ)༧ఆ - Java 17ϦϦʔεه೦ηϛφʔ ʹ2ճͷJJUG CCC ࣍ճ11/21() URL: https://www.java-users.jp/
Twitter: @JJUG JJUGʹࢀՃ͠Α͏ʂ 56