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
0
780
うらがみさんアドバイス解析〜リテラルはGCされない〜
真夏のhoge勉強会2016
ihcomega56
August 27, 2016
Tweet
Share
More Decks by ihcomega56
See All by ihcomega56
JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
ihcomega56
0
73
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
1.8k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.3k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
150
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.3k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
240
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
460
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
6k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.5k
Other Decks in Technology
See All in Technology
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
180
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
2
230
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
270
IAMポリシーのAllow/Denyについて、改めて理解する
smt7174
2
210
コンピュータビジョンの社会実装について考えていたらゲームを作っていた話
takmin
1
610
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
190
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.6k
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
190
急成長する企業で作った、エンジニアが輝ける制度/ 20250227 Rinto Ikenoue
shift_evolve
0
140
2/18 Making Security Scale: メルカリが考えるセキュリティ戦略 - Coincheck x LayerX x Mercari
jsonf
0
220
Fraxinus00tw assembly manual
fukumay
0
110
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
Featured
See All Featured
Gamification - CAS2011
davidbonilla
80
5.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
How STYLIGHT went responsive
nonsquared
98
5.4k
Typedesign – Prime Four
hannesfritz
40
2.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
510
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Building an army of robots
kneath
303
45k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
A designer walks into a library…
pauljervisheath
205
24k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
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ϓʔϧର֎ʂ
͠ΐʔͳ͍ͭͿ͖͕ɾɾɾ
ײ ίʔυॻ͍͙ͯ֬͢ೝͰ͖Δͷ͍͢͝ʂ ࣌ΫιΈ͍ͨͳπΠʔτͨͭ͠Γ͚ͩͬͨͲ Ԟ͕ਂ͔ͬͨʂ ଞਓͷ᧓Ͱ૬ΛͱͬͨΈ͍ͨͳʹͳ͚ͬͨͲ ͜ΕΛࣗͰग़དྷΔΑ͏ʹͳΒͳ͍ͱͳΜͩʂ
·ͱΊ ͍ͭ͋Γ͕ͱ͏͍͟͝·͢
͓ྱ ΞϙύΠম͍͖ͯͨͧ ͔ͩΒ࣌ؒͳͯ͘ ίʔυҰ෦͔͑͠Μ͔ͬͨ