package com.hihonor.appsearch.utils;

import java.lang.ref.PhantomReference;
import java.lang.ref.ReferenceQueue;
import java.util.ArrayList;
import java.util.List;

/**

功能描述 @since 2021-12-03
*/
public class Test {
public static void main(String[] args) {
List values=new ArrayList<>();
ReferenceQueue referenceQueue=new ReferenceQueue();
PhantomReference weakReference=new PhantomReference<>(values,referenceQueue);
for(int i=0;i<1000000000;i++){
final List strings = weakReference.get();
if (strings==null){
values=new ArrayList<>();
values.add(i+"");
System.out.println(i+"");
}
}
}
}
针对大数据集的list实现数据加入操作,执行过程中没有出现oom异常信息,这个给出了一个典型的代码优化方向。
使用虚引用,若引用来代替进行代码开发,可以减少执行过程中出现的oom数据异常情况的。使用相当少量的代码就可以完成对应的代码实现效果的。将会是我后期书写代码的优化方向的。

原文地址:https://blog.csdn.net/qq_33409840/article/details/121700614?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168474993416800184197548%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168474993416800184197548&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-6-121700614-null-null.142^v87^insert_down1,239^v2^insert_chatgpt&utm_term=java%E4%BC%98%E5%8C%96