java引用学習

1.引用されたカテゴリー:

強い引用
ソフトな引用
弱い引用
ファントムの引用(学習されていない)
ここに写真の説明を挿入

        //强引用:“=”这个连接的
        String str="abc";//常量池里面
        //软引用
        SoftReference<String> sfr=new SoftReference<String>(str);

        //弱引用
        WeakReference<String> wfr=new WeakReference<String>(str);

判断はアクセシビリティです。オブジェクトのアクセシビリティは、最も強い参照タイプによって決定されます。

1.強力な参照:

ここに写真の説明を挿入
強力な参照:GCによって収集されません。
ここに写真の説明を挿入

2.柔らかくてアクセスしやすい

強い参照を殺す

        //干掉强引用
        str=null;

残りのソフトリファレンスとウィークリファレンスはソフトであり、現時点ではアクセス可能です

ここに写真の説明を挿入
ソフトリファレンス:システムメモリが不足している場合、GCによってリサイクルされます

弱くてアクセスしやすい:

キル、強い参照、ソフト参照、弱い参照のみ

//清除软引用的引用链
        sfr.clear();

ここに写真の説明を挿入
弱い参照:GCが彼を見つけると、それをリサイクルします

弱い参照がGCによってリサイクルされることを確認します

方法:

String str="abc";//这个常量池里面

GCはヒープメモリを再
利用するため、System.gc()を実行しても、定数プール内のものを再利用することはできません。再利用するには、ヒープメモリ内の文字列を作成する必要があります。

String str=new String("abc");//这个在堆里创建的,所以可以被回收

おすすめ

転載: blog.csdn.net/sunweihao2019/article/details/109222582