我的代码可能存在内存泄漏,我正在尝试寻找解决方案。我正在使用 Spring for Android 框架。更具体的
RestTemplate.exchange();
为了进行即时绑定。但是,当我进行内存分析时,我得到以下信息:
由“dalvik.system.PathClassLoader @ 0x43692b80”加载的“com.products.Product”的 1.628 个实例占用 1.363.064 (22,20%) 个字节。这些实例引用自“java.lang.Object[]”的一个实例,由“”加载。支配树如下:
class com.products.ProductList @ 0x436d7ea8 系统类| 1.628 | 8 | 130.240 | 8
mFilteredProducts java.util.ArrayList @ 0x43a4eab0| 1.628 | 24 | 130.240 | 6.552
数组 java.lang.Object[1628] @ 0x43bdc888| 1.628 | 6.528 | 130.240 | 6.528
[274] com.products.Product@0x4398b038| 1 | 80 | 80 | 760
[1175] com.products.Product@0x43b26868| 1 | 80 | 80 | 808
...........
以上是支配树。但是我想知道是否有一种安全的方法来激活垃圾收集器。是个
System.gc();
安全的?但是,有没有办法停止这种内存泄漏?com.products.Product 类只是一个简单的 POJO,它将 JSON 字段绑定到相应的属性。一般用于绑定 JSON 的 POJO 如下:
@JsonIgnoreProperties(ignoreUnknown = true) //must be there all times most likely
public class MyPojo {
@JsonProperty("Products")
private ArrayList<Product> products;
public ArrayList<Product> getProducts() {
return products;
}
public void setProducts(ArrayList<Product> products) {
this.products = products;
}
}
com.products.产品:
@JsonIgnoreProperties(ignoreUnknown = true) //must be there all times most likely
public class Products {
@JsonProperty
private String prodnum;
@JsonProperty
private String brand;
@JsonProperty
private String name;
//get/set
}