全力で怠けたい

怠けるために全力を尽くしたいブログ。

Java

3/31の1ヶ月後が4/30になったり5/1になったりするメモ。

日付計算で月を加算 (減算) して、加算結果の日付が無効になったときの動きのメモ。 書くこと 加算結果が無効な日付になる例 各言語での例 仕様 まとめ 加算結果が無効な日付になる例 日付計算で月を加算 (減算) したとき、加算結果の日付が無効になることが…

zlib を利用してデータを圧縮 / 展開するコマンドを作りました

zlib を利用してデータを圧縮 / 展開 *1 するコマンドを作りました。github.com 書くこと なにができる? 使い方 インストール 動機 まとめ なにができる? データを zlib で圧縮 zlib で圧縮 されたデータの展開 これらをしてくれるコマンドです。 使い方 …

Java で -server オプションを付けたら4割近くも速くなったメモ

Java で -server オプションを付けたら4割近くも速くなったときのメモ。 動機 ログファイル中の XML をパースして XPath で抜き出す調査用のツールを使っていたのですが、本番機 / ステージング機と開発機で実行速度に大きな差がありました。本番機・ステー…

IntelliJ IDEA + Lombok + Gradle の環境構築メモ

IntelliJ IDEA で Lombok を使う環境を作り直した時のメモ。 やったこと SDKMAN! のインストール Gradle のインストール build.gradle に依存関係を記述 Lombok Plugin のインストール Annotation Processors の設定 SDKMAN! のインストール homebrew で Gra…

Java で文字列を16進ダンプする方法

ときどき使うけど覚えていられないメモ。 だいたいはコレで OK String str = "ジャバ"; // EUC-JP for (byte aByte : str.getBytes("EUC-JP")) { System.out.printf("%2X", aByte); } // A5B8A5E3A5D0 String str = "ジャバ"; // Shift_JIS for (byte aByte …

Rhino で JavaScript の予約語と同じ名前をもつメソッドを呼び出す方法

Rhino の jrunscript で File#delete() が動かなかった時のメモ *1 起きたこと File#delete() メソッドを呼ぶとエラーになる。delete は JavaScript の予約語だからダメってことらしい → https://bugzilla.mozilla.org/show_bug.cgi?id=229895 > jrunscript …

IntStream を逆順ソートしようとしたときのメモ

IntStream を逆順ソートしようとしたときのメモ。 IntStream の sorted() メソッドは Comparator インタフェースを受けない IntStream の sorted() メソッドは Comparator インタフェースを受けないので以下のようなコードは書けない。 IntStream reverse = …

ServerSocket の SO_REUSEADDR ソケットオプションの初期設定は誰が決めているのか

ふと ServerSocket の SO_REUSEADDR ソケットオプションが気になったときのメモ。 Java API 仕様 API 仕様には以下のように記述されている。ということは Java は我関せず? ServerSocketが作成されるときに、SO_REUSEADDRの初期設定は定義されていません。…

JVM オペコードのリファレンスビューアが便利

vim-ref-jvmis 使い方 " Vundle の場合 " vimrc に追記&再読込して :BundleInstall Bundle 'ebc-2in2crc/vim-ref-jvmis' " NeoBundle の場合 " vimrc に追記&再読込して :NeoBundleInstall NeoBundle 'ebc-2in2crc/vim-ref-jvmis' Jvmis というコマンドが…

境界ワイルドカード型の指定方法が覚えられない

Java のジェネリックスで境界ワイルドカード型のパラメータを使用するときに、 と どちらを指定すればいいか迷っていた時期がありました。 今日はなぜか TL でジェネリックスの話題が多く *1 、当時のことを思い出したので懐古エントリを書いてみます。 PEC…

JUnit のテストメソッド名に日本語を使ったときの問題の解決法 (Java 7)

Java 7 にアップデートしたら日本語メソッド名が通らなくなった 現象 クラス全体をテスト実行すると動く 日本語メソッドを選択して実行すると動かない Java 6 の場合には問題なかったのに、7 にアップデートしたら上手いこと動きません。 しかし、6 に戻すと…

class ファイルは一貫性を保ちたい。

(このエントリは classファイルを触ってはいけない - 日々常々 のパクリスペクトエントリです)まずこういうクラスがあります。 // Hoge.java public class Hoge { // static にすればインスタンスを生成する必要はない public static void print(int value) …

Java のチェック例外と非チェック例外の考察まとめ

世間ではオワコンと揶揄されることも珍しくない Java ですが、Java を初めたばかりのエンジニアがチェック例外と非チェック例外の使い分けについて「ベストプラクティスないの?」と調べたのをまとめてみました。 エントリまとめ どのエントリも Java につい…