不会被回收,如果内存不足会报OOM错误,应用基本就瘫了。if (homeApi == null) 线程不安全。
静态变量和静态代码块以及变量回收讨论!!!
5
public class NetWork {
private static Retrofit retrofit;
static {
retrofit = new Retrofit.Builder()
.client(builder.build())
.baseUrl("...")
.build();
}
private NetWork() {}
private static HomeApi homeApi;
public static HomeApi homeApi() {
if (homeApi == null) {
homeApi = retrofit.create(HomeApi.class);
}
return homeApi;
}
}
这样写会出现因为内存不足导致retrofit和homeApi两个对象一起被回收。而在此调用NetWork.homeApi()和导致的空指针吗?
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
5条回答
为你推荐
- 最近我公司的网站,服务器时间长了.就会报内存溢出.找不到原因
- 编程语言问答
- 互联网问答
- it技术
- IT行业问题
- 计算机技术
- 0个回答
- 静态变量和静态代码块以及变量回收讨论!!!
- android
- java
- 静态变量
- 静态代码块
- 5个回答