サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
hjm333.hatenablog.com
今回はジェネリックスの不変、共変、反変について書いてみた。 本当は Effective Java 「項目25:配列よりリストを使う」の予定だったんだけど、不変、共変、反変あたりの話がでてきて、 ここらへんは以前からまとめておきたかったし、ちょうどよいと思って記事にした。 不変、共変、反変 不変、共変、反変とはそれぞれ、ジェネリクスの性質を指す用語です。 話を具体的にするため、例として List<E> と、Object、String を使って説明します。 Java の Object、String には以下のような関係があります。 Object は String のスーパータイプである この時、Object と String に対してパラメータ化された型である List<Object> と List<String> の関係性はどうなるでしょうか? 可能性として、以下のような組み合わせを考えるこ
Effective Java シリーズの各項目の一覧。 第1章:はじめに 第1章:はじめに 第2章:オブジェクトの生成と消滅 項目1:コンストラクタの代わりに static ファクトリーメソッドを検討する 項目2:数多くのコンストラクタパラメータに直面した時にはビルダーを検討する 項目3:private のコンストラクタか enum 型でシングルトン特性を強制する 項目4:private のコンストラクタでインスタンス化不可能を強制する 項目5:不必要なオブジェクトの生成を避ける 項目6:廃れたオブジェクト参照を取り除く 項目7:ファイナライザを避ける 第3章:すべてのオブジェクトに共通のメソッド 項目8:equals をオーバーライドするときは一般契約に従う 項目9:equals をオーバーライドする時は、常に hashCode をオーバーライドする 項目10:toString を常にオ
equals をオーバーライドする時は、hashCode メソッドを必ずオーバーライドしなければならない。 オーバーライドしない場合、Object.hashCode の一般契約を破ることになり、HashMap、HashSet、HashTable など、hashCode の一般契約に基づくコレクションが適切に機能しない。 Object.hashCode の一般契約 Object.hashCode の一般契約は以下の通り。 hashCode メソッドの値は、equals で利用する個々のプロパティが変更されない限り、同一アプリケーション実行で同じ値を返す必要がある。 なお、この値は別のアプリケーション実行に対しては首尾一貫する必要はない 2つのオブジェクトに対する equals による比較が等しければ、2つのオブジェクトの hashCode 呼び出しは同じ整数結果を返さなければならない。 2つ
追記:2018年2月16日 Effective Java 3rd Edition を踏まえて内容をアップデートした記事を書きました。 こちらをご覧ください。 www.thekingsmuseum.info オブジェクトを生成するため、public コンストラクタの代わりに static ファクトリーメソッドを提供するべき。 static ファクトリーメソッドとはクラスのインスタンスを返す単なる static メソッド。GoF のデザインパターンで議論される「ファクトリーメソッド」とは異なるので注意が必要。 例えば、Java の Boolean で実装されている static ファクトリーメソッドは以下のようになっている。 public static Boolean valueOf (boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;
仕事でサーバーのパフォーマンス監視と死活監視に New Relic APM を利用している。New Relic APM を使うと自動的に Apdex という指標を算出してくれるのだが、今日は仕事でこの指標について調べた。 会社の qiita team には投稿したのだが、せっかくなのでこっちにもコピーしておこう。特に問題ないはず。 Apdex とは 概要 Apdex とは Application Perfomance Index の略で、「アプリケーションやサービスのレスポンス時間に対するユーザーの満足度」を示す指標です。一応、The Alliance という団体によって標準化されてた指標です。(New Relic の独自指標と説明しているサイトもあるけどそれは嘘。) Apdex は 0 から 1 の小数として示されます。 値が増加すればするほどユーザーがレスポンス時間に満足していることを
このページを最初にブックマークしてみませんか?
『hjm333.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く