数组移除一个对象,如果gc运行,是否会回收该对象,出现null异常

bukebuhao 2011-10-27 10:24:16



ArrayList<Shop> shopList =getShopList();
Shop shop = shopList.get(shopList.size()-1);
shopList.remove(0);
System.out.println(shop);


是不是会出现null异常
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lijing0511 的回复:]

不会, 因为还有引用指向该对象,所以不会被gc掉
[/Quote]
++
小笨熊 2011-10-27
  • 打赏
  • 举报
回复
不会,但是看了你的代码,会出现异常的。如果list为空,你的remove和get方法就报错啦
我嘞个去 2011-10-27
  • 打赏
  • 举报
回复
impossibility

shaosijun2004 2011-10-27
  • 打赏
  • 举报
回复
不可能出现
只要 ArrayList<Shop> shopList =getShopList();
shopList 指向的list不为null
你的代码就不会出现nullpointexception();
最多就是IndexOutOfBoundsException;
gc不会对强引用可达的对象进行回收
wingson_shen 2011-10-27
  • 打赏
  • 举报
回复
ArrayList<Shop> shopList =getShopList();
Shop shop = shopList.get(shopList.size()-1);
shopList.remove(0);
数组移除一个对象,如果gc运行,是否会回收该对象(有可能会回收)
System.out.println(shop);
是不是会出现null异常(不会。即使是null对象也只是打印出null,除非你对null对象进行操作)




JavaMan 2011-10-27
  • 打赏
  • 举报
回复
回收是不可操控的
lijing0511 2011-10-27
  • 打赏
  • 举报
回复
不会, 因为还有引用指向该对象,所以不会被gc掉

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧