JAva強参照と弱参照

892 ワード

JAvaの参照タイプ
強参照
強引用の特徴:
  • 強参照は、jvmによっていつでも回収されず、メモリ漏洩の原因となる可能性があります.
  • 強参照は、ターゲットオブジェクト
  • に直接アクセスすることができる.
    オブジェクトを作成すると、オブジェクトインスタンスがスタックに割り当てられ、メソッドでオブジェクトが作成された場合
    StringBuilder str = new StringBuilder("aaa");
    //str     ,      ,           ,str       
    

    注意:参照=操作は、2つのオペランドが指すスタック空間アドレスが同じかどうか、2つのオペランドが指すオブジェクトが同じかどうかを示すために使用されます.
    ソフトリファレンス
    ソフトリファレンスを持つオブジェクトは、メモリが不足している場合にのみjvmによって回収されます.ソフトリファレンスはSoftReferenceで構築できます
    MyObject mo = new MyObject();  //   
    SoftReference softRef = new SoftReference();
    

    WeakHashMap
  • はMapインタフェースを実現し、HashMapの実現であり、
  • である.
  • 弱参照を内部記憶方式として使用すると、メモリが緊張すると、弱参照のメモリデータ
  • が自動的に解放される.
  • put(),get()などの操作を行うと,expungStateEntries()メソッドが直接または間接的に呼び出され,弱い参照keyを持つテーブル項目
  • がクリーンアップされる.
  • keyの強い参照が存在する場合、HashMap
  • に劣化する.