Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JJUG,JJUG CCCについて、あとJava21 / JJUG, JJUG CCC, an...
Search
Naoki Kishida
July 19, 2023
Programming
1
640
JJUG,JJUG CCCについて、あとJava21 / JJUG, JJUG CCC, and Java 21
2023/7/19に行われたJJUG CCC 2023 Spring報告会 in 福岡での登壇資料です。
https://javaq.connpass.com/event/288665/
Naoki Kishida
July 19, 2023
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
ローカルLLM基礎知識 / local LLM basics 2025
kishida
27
14k
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
5
930
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
13
6.1k
海外登壇の心構え - コワクナイヨ - / how to prepare for a presentation abroad
kishida
2
120
Current States of Java Web Frameworks at JCConf 2025
kishida
0
1.6k
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
25
7.1k
LLMベースAIの基本 / basics of LLM based AI
kishida
13
3.6k
Java 24まとめ / Java 24 summary
kishida
3
810
AI時代のプログラミング教育 / programming education in ai era
kishida
25
27k
Other Decks in Programming
See All in Programming
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
440
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
120
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
1.7k
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
400
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
1.7k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
440
JETLS.jl ─ A New Language Server for Julia
abap34
2
450
tparseでgo testの出力を見やすくする
utgwkk
2
280
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
0
270
AIコーディングエージェント(Manus)
kondai24
0
210
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.3k
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
250
ラッコキーワード サービス紹介資料
rakko
0
1.8M
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
Code Reviewing Like a Champion
maltzj
527
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to make the Groovebox
asonas
2
1.8k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
65
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
340
Transcript
JJUG / JJUG CCCについて あと、Java 21の紹介 2023/7/19 JJUG CCC 2023
Spring 報告会@福岡 LINE Fukuoka きしだ なおき
07/20/2023 2 自己紹介 • きしだ なおき • LINE Fukuoka •
twitter: @kis • 「プロになるJava」という Java入門書を書いてます
07/20/2023 3 JJUGについて • 日本Java User Group • Java 技術の向上・発展、開発者の支援を目的とした任意団体
• 2007年4月に発足 • Doorkeeper登録者数12107人(6/4時点) • 活動 • JJUG CCC(年2回, Spring / Fall) • ナイトセミナー(月1回) • Java仕様勉強会(月1回) • 地方イベントへの講師派遣(今回のirofさんも)
JJUG CCC • Cross Community Conference • 2007年当時、Seasar2やJSUGなどプロダクトごとのコミュニティが 活発であり、またGroovyやJRubyなどJVM言語も盛り上がっていたた め、Java/JVMをテーマに各団体の協力でイベントを開催
• JJUG CCC 2023 Spring • 初のオン・オフハイブリッド開催 • 会場参加約300名
Java 21 • 9/19リリース予定 • LTS • 主な機能 • パブリックスタティックヴォイドメインが簡潔に!(Preview)
• String Templateで文字列に式を埋め込み(Preview) • 実用的なパターンマッチングが標準に! • Record Patterns / Pattern Matching for switch • Virtual Threadが標準に!
パブリックスタティックヴォイドメインが簡潔に! • クラスの定義が不要に • mainメソッドの引数を省略可能に • インスタンスメソッドでもOK • publicじゃなくてもOK(privateだけダメ) •
説明に完全なコードを入れやすくなった • →はWEB+DB PRESS 135の原稿 • Preview機能 • --enable-preview -source 21が必要
String Templateで文字列に式を埋め込み • STR.”今日は\{LocalDate.now()}です” import static java.util.FormatProcessor.FMT; void main() {
for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { System.out.print(FMT."\{i}*\{j}=%2d\{i*j} "); } System.out.println(); } }
実用的なパターンマッチングが標準に! • JEP 440 Record Patterns • JEP 441 Pattern
Matching for switch sealed interface Op permits Output, Goto {} // 命令 record Output(String message) implements Op {} record Goto(int no) implements Op {} List<Op> codes = List.of( // プログラム new Output("hello"), new Output("world"), new Goto(0)); int counter = 0; void clock() { // 命令実行 counter++; switch(codes.get(counter-1)) { // 命令ごとの分岐 case Output(var msg) -> System.out.println(msg); case Goto(var no) -> counter = no; } }
Virtual Threadが標準に! • いままでのスレッドは高機能 • しかしサーバーで複数リクエストを処理することが主な利用目的 • ネットワークの待ち時間が大きい • スレッドは何もしていない
• 無駄にリソースを食う • OSスレッドを複数リクエストで使いまわすことが可能 • 軽量化
まとめ • みんなもJJUG CCCに行こう • 登壇もしよう • 登壇初心者枠あり • 交通費出るはず(要確認)
• Java 21はイイゾ