Java
JJUG CCC 2025 Spring に参加しました! JJUG CCC への登壇もなんと5連続!今回は「HashMap の実装ってどうなってるの?」というセッションでした。みなさんが最新のJavaの動向やテクノロジーの話をする中、Java 8 以降はそんなに変わっていない手垢のついた…
JJUG CCC 2024 Fall に参加しました! JJUG CCC への登壇もなんと4回目。いい加減慣れてきた頃…、と思ったのですが全然そんなことなかったです。この1ヶ月ぐらいあーでもないこーでもないと構成を考えて書き直して図を追加してというのをずっと繰り返してい…
JJUG CCC 2024 Spring に参加しました! JJUG CCC への登壇も3回目。今回は、なんと桜庭さんと二人でのセッションでした。1 登壇中は、だんだん余裕がなくなってだいぶテンパってしまい、会場の反応を見れていなかったのですが、その後の反応を伺う限り二人…
JJUG CCC 2023 Fallに参加しました! 前回よりも参加者が大幅に増えて、ワイワイと盛り上がった中でいろんな話が聞けて楽しかったです! 特に、一足先に次回の Java 22 でリリース予定の Foreign Function & Memory API と String Template の話があって、使…
JJUG CCC 2023 Spring に参加しました! 今回、なんとJJUG CCC 参加9年目にして初登壇してきました。色んな人から「えっ、初?」って言われましたw1 セッションは、javap を使ってクラスファイルを読んでみよう という、ややマニアックな内容です。頑張って…
JJUG CCC 2022 Fall に参加しました! オンライン開催も、今回で4回目。 今回はスタッフとして参加1して、ちょっとだけ司会をしました。スムーズに進行できていたら幸いです。 今回、特によかったなーと思ったのが、完成度の高いもちださんのセッション。 ま…
Java のサポートされているエンコーディングの一覧を見ていると、UTF-16, UTF-16BE, UTF-16LE, x-UTF-16LE-BOM とあって、なにが違うんだろうと思って調べてみました。 まとめると、読み・書き時のバイトオーダー (BO) 1 と書き込み時の BOM (Byte Order Mar…
年が省略されている日付(月/日)の場合 まずは、DateTimeFormatter を用意します。 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd"); 次に、日付を MonthDay クラスでパースします。 MonthDay monthDay = MonthDay.parse("07/18", for…
JJUG CCC 2022 Spring に参加しました! いつも以上におもしろいセッション盛りだくさんで、参加してとても楽しかったです。 LINEのトラブルシューティングのような現場での経験をもとにした話から、バイトコードのようなJavaのコアな話まで、とてもバランス…
Java のラムダ式が、どのようにコンパイルされ実行されているか気になりますよね。 そこで、クラスファイルを分析して、その中身を調べてみました。 なお、今回は OpenJDK 17.0.1 を使って調べています。 バージョンによって挙動が異なる場合があるので、ご…
JJUG CCC 2021 Fall に参加しました! JJUG CCC オンラインも3回目ということで、JJUG運営の方も参加者の方もお互い慣れてきた感じがします。 自分も、今回は夕方から用事があったので、時間差でセッションを見ながら電車で移動ということをやりました。ラジ…
JJUG CCC 2021 Spring に参加しました! 前回に引き続き、今回もオンライン開催となりました。 オンラインだと移動が楽というメリットがあって、これはどっちのセッション見ようかなーというときに、途中でさっとほかの動画に移れるのは便利でした。 あとは…
前回の記事(Javaのバージョン別、1行ずつファイルを読む方法まとめ)への感想で、このような話がありました。 丸々読み込む方法のまとめもお願いします!— ユースケ (山本裕介) (@yusuke) May 3, 2021 というわけで、今回はテキストファイルを一括で読み込…
Java でファイルを読み込む処理は、バージョンが上がるごとにどんどん簡単に書けるようになっていきました。 今回は、どれだけ簡単になっていったかを Java のバージョンごとにまとめて説明します。 なお、ここでは以下の処理を行うコードをもとにしています…
JDK 1.0 (Java 1.0.2) を入手したので、GitHub に置いておきました。 https://github.com/YujiSoftware/JDK1.0 なんと、Windows 10 上でも動きます。 あと、src.zip も展開して置いた ので、GitHub 上で読めます。 Java 考古学者のみなさま、ぜひご活用くだ…
JJUG CCC 2020 Fall に参加しました! 今回は、初のオンライン開催ということで、いつもと違って自宅からの視聴。 でも、twitter のハッシュタグを見るとみんなでわいわいやってる感は変わらず、質疑応答もありでいつもと変わらず楽しめました。 それに加え…
Java の Object#Clone() メソッドは throws CloneNotSupportedException が宣言されています。 protected native Object clone() throws CloneNotSupportedException; しかし、クラスが Cloneable インタフェースを実装していれば CloneNotSupportedExceptio…
Stack Overflow の質問には、その内容を示すタグが付与されています。 このタグ、よく見ると「言語」+ 「フレームワークやライブラリの名称」という構成が多いです。 つまり、これを分析すれば、言語ごとに質問の多い(つまり、よく使われている、人気がある…
JJUG CCC 2018 Fall に行ってきました!今回、興味のあるディープな JVM の話とかアーキテクチャ設計をたくさん聞けて、個人的にはとてもテンションが上がりました! 「Deep dive into instanceof」のように、HotSpot VM の深い話を知れたり。仕事で役に立つ…
Arrays.asList(T... a) というメソッドについてググると、「このメソッドで返ってくる List は、add や remove ができないので注意しましょう」ということが良く書かれています。 でも、「なぜできないのか?」という点については書かれていないことが多いの…
JJUG CCC 2018 Spring に行ってきました! 実は、仕事では最近 Java から離れているのですが*1、それでも CCC (クロスコミュニティカンファレンス)と銘打ってるだけあってやっぱり参考になる話がいろいろありました。 特に、同じ業界の方も登壇されていて…
Java は、バージョン 10 以降タイムベースリリースに変わりました。 それに合わせて、バージョン表記がまた変わったので概要をまとめました。*1 詳細は JEP 322: Time-Based Release Versioning を参照。 バージョン番号 $FEATURE.$INTERIM.$UPDATE.$PATCH …
JJUG CCC 2017 Fall に行ってきました! 今回は自分好みな「普段使ってるアレ、深掘りするとこうなってるんだぜ」的なセッションをいろいろ聞けて大満足でした。 印象に残っているのが「DBのTCPプロトコルとJDBC / yohei yamana さん」。 「かっちりした Pos…
11月18日(土) に開催されるJJUG CCC 2017 Fall の「時間別」&「カテゴリ別」タイムテーブル(セッション一覧)が欲しかったので、前回同様にページを作りました! JJUG CCC 2017 Fall - Timetable (非公式) 今回の改良点はお気に入りボタンがわかりやすくな…
前々からこの実装はどうなの!?と言われていた String クラスの CharSequence を引数に取る replace メソッド。 これがついに Java 9 でリファクタリングされていました! 今まであった問題 String クラスの replace (CharSequence target, CharSequence re…
本日、ついに JavaSE 9 がリリースされました! そこで、かねてから噂になっていた JEP 254: Compact Strings がどのように実装されているのか調べてみました。 Compact Strings の概要 これまで String クラスや StringBuilder クラスなどの内部では、文字…
たまに検索エンジンなどからリンクを辿って Java API ドキュメント (Javadoc) のページを開くと、古い Java 6 や Java 7 のページが表示されて (´・ω・`) となることがあります。 自分は Java 8 の API ドキュメントが見たいのに…。 そんなときに、自動で J…
かつて https://duke.kenai.com/ で配布されていた Duke の画像を再配布するページを作りました! Redistribution of Duke images これは何? Java のマスコットキャラクター "Duke" の画像は、これまで https://duke.kenai.com/ で BSDライセンスのもと配布…
JJUG CCC 2017 Spring に行ってきました!(感想をあとで書く)さて、まだ公式で公開されていなかったので、残念ながら時間がかぶってしまって参加できなかったセッションもあったので、あとで読むために現時点で発表者の方が公開されている資料一覧をまとめ…
5月20日(土) に開催されるJJUG CCC 2017 Spring の「時間別」タイムテーブル(セッション一覧)が欲しかったので、前回同様にページを作りました! JJUG CCC 2017 Spring - Timetable (非公式) 新機能「お気に入り登録」 今回から「セッションのお気に入り登…