次のコードがあります。
  result = binding.downloadData(sourceURLString.replace("{CAT_ID}", catId), Data.class);
  ArrayList<Data> mAllProducts = result.getProducts();
  cloneList(mAllProducts);
  System.gc();
そして、mAllProducts ArrayList のディープ コピーは次のとおりです。
  static List<Data> clone;
  public static void cloneList(ArrayList<Data> list) {
    clone = new ArrayList<Data>();
    for(Data item: list){ 
        clone.add(new Data(item));
         }
 }
データ コンストラクター:
 public Data(Data item2) {
    this.imageUrl = item2.imageUrl;
                   *
                   *
  }
私の質問は次のとおりです。
- mAllProducts arraylist はガベージ コレクターによって収集されますか?
- クローン リストは値渡しの ArrayList ですか?
- 2 番目の質問の答えが「はい」の場合、それはクローン配列リストにメモリへの参照がないことを意味しますか?
- 最後に、2 番目の質問の答えが「はい」の場合、それは、システムが使用している間だけメモリにとどまり、その後ガベージ コレクションが行われることを意味しますか?