Objects汎用メソッド

1855 ワード

自分で書いたクラスは、一般的にどのような方法を実現しますか?
  • equals,hashCode,toString,clone,finalize,その他Comparable.compareToメソッド
  • equalsメソッドを実現する必要はありませんか?
  • クラスの各インスタンスは、もともと唯一の
  • である.
  • クラスはlogical equalityのテスト
  • を提供する必要はありません.
  • スーパークラスはequals法をカバーしており、スーパークラスの挙動はこのクラス
  • に適している.
  • クラスはプライベートまたはパッケージプライベートであり、クラスのequalsメソッドがinvoked
  • によって使用されないことを確認します.
    equalsメソッドを上書きする5つのプロトコルはどれらですか?
  • 反身性;対称性伝達性一貫性;Non-nullity

  • インスタンス化可能なクラスをextendし、value componentを追加し、equalsプロトコルを保護する方法はありますか?
  • 仕方ない
  • 前の問題に対して、角度を変えてこの問題を解決してもらえますか?
  • は、
  • を継承することなく組み合わせを変更する.
  • はクラス階層、すなわち抽象クラスのサブクラスにvalue componentを追加し、equalsプロトコル
  • を保護することができる.
    equalsメソッドを上書きするには、何かアドバイスがありますか?
  • equalsメソッドを上書きする必要がある場合は、
  • を上書きします.
  • equalsメソッドは、上記5つのプロトコル
  • に従う.
    なぜequalsメソッドを上書きする場合、hashCodeメソッドを上書きするのですか?
  • hashCodeを上書きする汎用プロトコル:
  • 1. equals , , hashCode , 
    2.equal objects must have equal hash codes
    3. equal objects, hash codes 
    
  • hashCodeを上書きする第2条共通プロトコルによれば、等値オブジェクトは等しいhash codesを有しなければならず、2つの等値オブジェクトがhash codesを上書きしなければ、そのhash codes値は等しくなく、このプロトコルに違反する.したがってequalsメソッドを上書きする場合はhashCodeメソッドを上書きする必要があります.

  • なぜtoStringメソッドを上書きするのか
  • 元のtoStringが返す文字列は、クラス名+@+16進数のhashCode値
  • です.
  • toStringメソッドのプロトコル:簡潔で読みやすい文字列
  • を返す
    cloneメソッドを上書きするには、どのようなアドバイスがありますか?
  • できるだけCloneableインタフェースを実現しないで、cloneメソッド
  • を提供しないでください.
  • 配列のcopyについてclone法
  • を推奨する
  • immutable classesはcloneメソッド
  • の提供を禁止すべきである.
  • object copyの場合、copy constructorまたはcopy factory
  • の使用を推奨します.
    comparisonに依存するクラスはどれらがありますか?
  • TreeSet,TreeMap,Collections,Arrays,検索およびソートアルゴリズムを含む
  • クラスがcomparisonの機能を実現するには、どのような方法がありますか?
  • Comparableインタフェースを実現し、comparareToメソッド
  • を書き換える
  • Comparator
  • を使用
  • java 8のComparatorインタフェースのcompararingIntやcompararingなどの方法
  • compareToメソッドを実装する際、注意すべきことは何ですか?
  • >および