日々調べたことを書きます。2018-07-15Object.equals()とObject.hashCode()のデフォルト実装Javajava.lang.Objectのequals()とhashCode()の実装について調べました。実装は下記の通り、参照値を比較しているだけです。src/share/classes/java/lang/Object.java参照値とはすなわちオブジェクトへのポインタなので、Object.equals()は同一のインスタンスであるときだけtrueを返します。object.参照値(単に参照とも)はオブジェクトへのポインタまたはnullです。nullはオブジェクトを参照しない特殊な参照値です。VariablesObject.hashCode()hashCode()はJVMの実装に依存します。srvaroa.github.ioこちらの記事でとても詳しく説明されていました。6乱数とのことでした。XorShiftは、排他的論理和とビットシフトのみで(高速に)疑似乱数を生成できるアルゴリズムです。Headerと呼ばれるインスタンスごとに持つ領域に記録されます。codeを生成するコードは次の通りです。src/share/vm/runtime/synchronizer.cppスレッドのメンバ変数_hashStateXと_hashStateWを使ってハッシュコードを生成します。hashStateWをアルファベット順で一つ前の名前を持つ変数に値を移し、hashStateWを生成したハッシュコードにすることで、次の呼び出し時にもユニークな値が生成できるようにしています。_hashStateはスレッド生成時に次のように初期化されます。(さっくりと)覚...2018-06-17reactのstateがごちゃつき始めるくらいまで使ってみた。part2月別アーカイブ参加グループプログラミングはてなブログをはじめよう!ytnk531さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。