Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JJUG,JJUG CCCについて、あとJava21 / JJUG, JJUG CCC, an...
Search
Naoki Kishida
July 19, 2023
Programming
710
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Naoki Kishida
See All by Naoki Kishida
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
200
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
840
Java 27新機能 / Java 27 new features
kishida
2
250
ローカルLLMでどこまでコードが書けるか -LLM基礎知識 / How much code can be written on a local LLM - fundamental knowledge
kishida
10
11k
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.5k
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
430
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
5.7k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
300
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
670
Other Decks in Programming
See All in Programming
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
1.1k
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
120
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
最近”作らせてる” ローカルAIアプリの話
akit37
0
500
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
11
8.7k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
430
Event is what happens
moro
2
1.6k
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
310
Next.js: The final boss of Web Performance
guaca
0
340
R8 の設定見直しでアプリサイズ削減
andpad
0
230
Domain-Driven Transformation
hschwentner
2
2.3k
Featured
See All Featured
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
900
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
810
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Test your architecture with Archunit
thirion
2
2.5k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
580
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
440
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
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はイイゾ