Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
うらがみさんアドバイス解析〜リテラルはGCされない〜
Search
ihcomega56
August 27, 2016
Technology
840
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
うらがみさんアドバイス解析〜リテラルはGCされない〜
真夏のhoge勉強会2016
ihcomega56
August 27, 2016
More Decks by ihcomega56
See All by ihcomega56
JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
ihcomega56
1
180
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
2.1k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.7k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
280
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.5k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
340
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
570
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
6.8k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.8k
Other Decks in Technology
See All in Technology
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
[ホンマでっか SRE] あなたはなぜ SRE に?
_awache
0
270
Introduction to Bill One Development Engineer
sansan33
PRO
0
470
Claude Teamプランの コスト最適化を考える
rfdnxbro
0
730
フィジカルAIの知識ゼロの僕でも AIを使えばここまでできた
tatsuya1970
0
190
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
430
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Windows の互換機能 - 古いプログラムはなぜ動作できるのか
murachiakira
PRO
0
110
「ミスを許さない手順書」を作ってみた 〜 個人的にはこれ以上できることはあまりなさそう/20260827-ssmjp-operation-procedure-update
opelab
6
3.8k
サービス内で複数のOP・ASを連鎖させる(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
310
OAuth SPIFFE Client Authentication(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
310
ブラウザで変わるID連携(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
310
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
500
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
490
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Fireside Chat
paigeccino
42
4k
Balancing Empowerment & Direction
lara
6
1.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Amusing Abliteration
ianozsvald
1
260
How to Talk to Developers About Accessibility
jct
2
530
Transcript
͏Β͕Έ͞Μͷ ΞυόΠεղੳୈ
͏Β͕Έ͞Μͱ͍͑ ઌੜͷΑ͏ͳଘࡏʂ
͏Β͕Έ͞Μͱ͍͑
࠷ۙͩͱ DBTFDMBTTͷ ·ͩΑ͘Θ͔ͬͯͳ͍ GMBU.BQͷJNQMJDJUDPOWFSUFS ݁ߏΘ͔ͬͨ ˞4DBMB
ಛ /PUPOMZઆ໌ #VUBMTPίʔυ
ࠓ ੲ͍͍ͨͩͨίʔυΛ ͣͬͱ์ஔ͔ͯ͠Βͣʹ͍ͨͷͰ ࠓߋղੳͨ͠
࣌ ύʔϑΣΫτ+BWB
ٙ
ղ
͏Β͕Έ͞ΜʹΑΔ࣮ݧ IUUQTHJTUHJUIVCDPNCBDLQBQFSEBGFGGFCF
༰ wϦςϥϧ wOFXͨͭ͠ wJOUFSOͨͭ͠ wϦςϥϧͦͷ wϦςϥϧͦͷͷΫϥεϩʔμʔ wϦςϥϧͦͷͷΫϥε wϦςϥϧͦͷͷϑΟʔϧυ ($͞ΕΔͷ͔ʁ
༰ wϦςϥϧ wOFXͨͭ͠ wJOUFSOͨͭ͠ wϦςϥϧͦͷ wϦςϥϧͦͷͷΫϥεϩʔμʔ wϦςϥϧͦͷͷΫϥε wϦςϥϧͦͷͷϑΟʔϧυ ͜͜ͷ෦Λͬͨ
ݴ͍༁ શ෦ग़དྷͳ͔ͬͨͷʹཧ༝͕ ޙड़
͍ͬͯΈΑ͏ wϦςϥϧ wOFXͨͭ͠ wJOUFSOͨͭ͠
ͦͦ JOUFSOͬͯͳΜ͚ͩͬ
JOUFSOϝιου͕ݺͼग़͞Εͨͱ͖ʹɺFRVBMT 0CKFDU ϝιο υʹΑͬͯ͜ͷ4USJOHΦϒδΣΫτʹ͍͠ͱఆ͞ΕΔจࣈ ྻ͕ϓʔϧʹ͢Ͱʹ͋ͬͨ߹ɺϓʔϧͷ֘͢Δจࣈྻ ͕ฦ͞Ε·͢ɻ ͦ͏Ͱͳ͍߹ɺ͜ͷ4USJOHΦϒδΣΫτ͕ϓʔϧʹՃ͞ Εɺ͜ͷ4USJOHΦϒδΣΫτͷࢀর͕ฦ͞Ε·͢ɻ JOUFSO +BWB%PDΑΓ
จࣈྻϦςϥϧΛએݴ͢Δͱ 4USJOHϓʔϧͬͯͱ͜ʹอ࣋͞ΕΔ ϓʔϧ
จࣈྻϦςϥϧΛએݴ͢Δʹ 4USJOHϓʔϧͷதΛ֬ೝͯ͠ ಉ͡จࣈྻ͕͋ΕͦͷࢀরΛ͍ճ͢͠ ͳ͚Ε৽͘͠࡞ͬͯอ࣋͢ΔΒ͍͠ ͱ͍͏͔
ͯ͞ ؾΛऔΓͯ͠ ίʔυղੳͩͬ ·ͣ ͭͷΠϯελϯεΛ ੜ͠Α͏
ΠϯελϯεΛੜ͢Δ wϦςϥϧ wOFXͨͭ͠ wJOUFSOͨͭ͠
ΠϯελϯεΛੜ͢Δ
ΠϯελϯεΛੜ͢Δ •”aaa” •new String(”bbb”) •new String(new char[] { ‘c’,’c’,’c’ }).intern()
Μʁ new String(new char[] { ‘c’,’c’,’c’ }).intern() DIBSʜ ϓʔϧʹՃ͢ΔλΠϛϯάΛ
JOUFSO ͕ݺͼग़͞Εͨͱ͖ OPUϦςϥϧ͕એݴ͞Εͨͱ͖ ʹ ͍͔ͨ͠Β͔ͳʁʁʁ
Μʁ new String(new char[] { ‘c’,’c’,’c’ }).intern() DIBSʜ ϓʔϧʹՃ͢ΔλΠϛϯάΛ
JOUFSO ͕ݺͼग़͞Εͨͱ͖ OPUϦςϥϧ͕એݴ͞Εͨͱ͖ ʹ ͍͔ͨ͠Β͔ͳʁʁʁ ਖ਼ղͰͨ͠ ൃදޙʹՃͨ͠εϥΠυ
ͯ͞ ؾΛऔΓͯ͠ ίʔυղੳͩͬ ࣍ ࡞ͬͨΠϯελϯε͕ ($͞ΕΔ͔֬ೝ͠Α͏
ྲྀΕ ($͞Εͯͳ͍͜ͱΛ֬ೝ͢Δ ($ͷରͱ͢Δ ͕Μͬͯ($͢Δ ($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
ྲྀΕ
($͞Εͯͳ͍͜ͱΛ֬ೝ͢Δ ($͞Εͯͳ͍͜ͱΛ֬ೝ͢Δ ($ͷରͱ͢Δ ͕Μͬͯ($͢Δ ($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
($͞Εͯͳ͍͜ͱΛ֬ೝ͢Δ
($͞Ε͔ͨ֬ೝ͢Δํ๏ ͷͪ΄Ͳɾɾɾ
($ͷରͱ͢Δ ($͞Εͯͳ͍͜ͱΛ֬ೝ͢Δ ($ͷରͱ͢Δ ͕Μͬͯ($͢Δ ($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
͜ΕͬͯΔʂ OVMMΛೖ͢ΔΜͰ͠ΐ͏ʁ
($ͷରͱ͢Δ
($ͷରͱ͢Δ
($ͷରͱ͢Δ
ڧࢀরʁ ͳΜͧ
ུ ऑࢀরΦϒδΣΫτɺͦͷऑࢀরΦϒδΣΫτͷϦϑΝ Ϩϯτ͕ϑΝΠφϥΠζՄೳʹͳΓɺϑΝΠφϥΠζ͞Εɺͦ ͯ͠࠶ੜ͞ΕΔ͜ͱΛ્ࢭ͢Δ͜ͱ͋Γ·ͤΜɻ ͋Δ࣌ͰɺΦϒδΣΫτ͕ऑ౸ୡՄೳͰ͋ΔͱɺΨϕʔδί ϨΫλ͕அͨ͠ͱ͠·͢ɻͦͷ࣌ͰɺΨϕʔδίϨΫλɺ ͦͷΦϒδΣΫτͷऑࢀরͯ͢ͱɺڧࢀর͓Αͼιϑτࢀ রͷνΣʔϯΛܦ༝ͯͦ͠ͷΦϒδΣΫτʹ౸ୡͰ͖ΔΑ͏ͳɺ ΄͔ͷऑ౸ୡՄೳͳΦϒδΣΫτͷऑࢀরͯ͢Λɺݪࢠత ʹΫϦΞ͠·͢ɻಉ࣌ʹɺΨϕʔδίϨΫλҎલʹऑ౸ୡՄ
ೳͳΦϒδΣΫτ͕ͯ͢ϑΝΠφϥΠζՄೳͰ͋Δ͜ͱΛએ ݴ͠·͢ɻಉ࣌ʹ·ͨ͋ͱͰɺΨϕʔδίϨΫλɺࢀর Ωϡʔʹొ͞Ε͍ͯΔͦΕΒͷ৽͘͠ΫϦΞ͞ΕͨऑࢀরΛ ΩϡʔʹೖΕ·͢ɻ ऑࢀর +BWB%PDΑΓ
ऑࢀর +BWB%PDΑΓ
ڧࢀরɾऑࢀর ͻͩ͠·͞ΜϖʔδΛࢀߟʹ ڧࢀরɿ ଟී௨ͷࢀরΛࢦ͢ ऑࢀরɿ ʮऑࢀরʹͯ͠อ࣋͢Δͱɺ ଞͷ௨ৗͷࢀর͕શͯແ͘ͳΕɺ ($ͷରʹͳΔʯΒ͍͠ɾɾɾ
ɾɾɾʁ ʮଞͷ௨ৗͷࢀর͕શͯແ͘ͳΕɺ ($ͷରʹͳΔʯʁ ͲͷΠϯελϯεͦ͏ͩͱࢥͬͯͨ ऑࢀর͡Όͳ͍ͷ($ͷରͰͳ͍ʁ ҧ͍͕Α͔͘Βͳ͍ͷ͚ͩͲ ऑࢀরͩͱ($ͷରͱ͍͏͜ͱ ͔֬ͬΆ͍ ࡶ
ɾɾɾʁ ऑࢀরͷ߹ ࢀর͕͋ͬͯ($ͷରʹͳΔ ͦ͏Ͱ͢ Ωϟογϡͱ͔ʹ͏Β͍͠ ൃදޙʹՃͨ͠εϥΠυ
ͯ͞ ؾΛऔΓͯ͠ ίʔυղੳͩͬ ଓ͖ʙ
($ͷରͱ͢Δ
ͭ·Γࠓ ͭͷจࣈྻ ͲΕڧࢀর͕ͳ͍ ($͞Εͦ͏ʂ
͕Μͬͯ($͢Δ ($͞Εͯͳ͍͜ͱΛ֬ೝ͢Δ ($ͷରͱ͢Δ ͕Μͬͯ($͢Δ ($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
͜Ε͔ͯ͠͠ʂ 4ZTUFNHD ͔ͳʁ
Ͱ 4ZTUFNHD ݺΜͰ ($͞ΕΔͱݶΒͳ͍ͬͯ ͬͪΌ͕ݴͬͯͨ
͕Μͬͯ($͢Δ
+BWBԾϚγϯͷۭ͖ϝϞϦʔͷྔΛฦ͠·͢ɻ HDϝιουΛݺͼग़͢ͱɺ GSFF.FNPSZʹΑͬͯฦ͞ΕΔ͕૿͑Δ߹͕͋Γ·͢ɻ 3VOUJNFGSFF.FNPSZ +BWB%PDΑΓ
͕Μͬͯ($͢Δ
($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ ($͞Εͯͳ͍͜ͱΛ֬ೝ͢Δ ($ͷରͱ͢Δ ͕Μͬͯ($͢Δ ($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
͜ͷࢀরΦϒδΣΫτ͕ɺ ϓϩάϥϜ·ͨΨϕʔδɾίϨΫλʹΑͬͯ ΩϡʔʹೖΕΒΕ͍ͯΔ͔Ͳ͏͔Λఆ͠·͢ɻ 3FGFSFODFJT&ORVFVFE +BWB%PDΑΓ
ུ ऑࢀরΦϒδΣΫτɺͦͷऑࢀরΦϒδΣΫτͷϦϑΝ Ϩϯτ͕ϑΝΠφϥΠζՄೳʹͳΓɺϑΝΠφϥΠζ͞Εɺͦ ͯ͠࠶ੜ͞ΕΔ͜ͱΛ્ࢭ͢Δ͜ͱ͋Γ·ͤΜɻ ͋Δ࣌ͰɺΦϒδΣΫτ͕ऑ౸ୡՄೳͰ͋ΔͱɺΨϕʔδί ϨΫλ͕அͨ͠ͱ͠·͢ɻͦͷ࣌ͰɺΨϕʔδίϨΫλɺ ͦͷΦϒδΣΫτͷऑࢀরͯ͢ͱɺڧࢀর͓Αͼιϑτࢀ রͷνΣʔϯΛܦ༝ͯͦ͠ͷΦϒδΣΫτʹ౸ୡͰ͖ΔΑ͏ͳɺ ΄͔ͷऑ౸ୡՄೳͳΦϒδΣΫτͷऑࢀরͯ͢Λɺݪࢠత ʹΫϦΞ͠·͢ɻಉ࣌ʹɺΨϕʔδίϨΫλҎલʹऑ౸ୡՄ
ೳͳΦϒδΣΫτ͕ͯ͢ϑΝΠφϥΠζՄೳͰ͋Δ͜ͱΛએ ݴ͠·͢ɻಉ࣌ʹ·ͨ͋ͱͰɺΨϕʔδίϨΫλɺࢀর Ωϡʔʹొ͞Ε͍ͯΔͦΕΒͷ৽͘͠ΫϦΞ͞ΕͨऑࢀরΛ ΩϡʔʹೖΕ·͢ɻ ऑࢀর +BWB%PDΑΓ
ͭ·Γ ऑࢀর ($ͷରͱͳΔ ΠϯελϯεΛ ΨϕʔδίϨΫλ͞Μ͕ݟ͚ͭΔͱ ݪࢠతʹΫϦΞ͢Δʁ($͕ى͖Δ
ͭ·Γ ͦͷΫϦΞ ($ ରʹͳͬͨऑࢀর͕ ΩϡʔʹೖΔʁ
ͭ·Γ Ωϡʔʹೖ͍ͬͯΕ ($͞ΕͨͱΈͳͯ͠0,ʁʁʁ
($͞ΕͯΔ͔Ͳ͏͔֬ೝ͢Δ
ͳ Δ ΄ Ͳ
Ϧςϥϧ($͞Εͯͳ͍Α OFXͨͭ͠($͞ΕͨΑ‷ ɾŷɾ و ̑̑ŞƄŕ JOUFSOͨͭ͠($͞ΕͨΑ‷ ɾŷɾ و ̑̑ŞƄŕ ݁Ռ
݁Ռ Ϧςϥϧ($ͷର֎ʂ 4USJOHͷΠϯελϯε ώʔϓ্ʹ͋Δͷʁ ଞͷΠϯελϯεͱಉ༷($ର͚ͩͲ 4USJOHϓʔϧର֎ʂ
͠ΐʔͳ͍ͭͿ͖͕ɾɾɾ
ײ ίʔυॻ͍͙ͯ֬͢ೝͰ͖Δͷ͍͢͝ʂ ࣌ΫιΈ͍ͨͳπΠʔτͨͭ͠Γ͚ͩͬͨͲ Ԟ͕ਂ͔ͬͨʂ ଞਓͷ᧓Ͱ૬ΛͱͬͨΈ͍ͨͳʹͳ͚ͬͨͲ ͜ΕΛࣗͰग़དྷΔΑ͏ʹͳΒͳ͍ͱͳΜͩʂ
·ͱΊ ͍ͭ͋Γ͕ͱ͏͍͟͝·͢
͓ྱ ΞϙύΠম͍͖ͯͨͧ ͔ͩΒ࣌ؒͳͯ͘ ίʔυҰ෦͔͑͠Μ͔ͬͨ