请问在java中能否手动删除对象

leetow2006 2019-07-06 09:43:29
当我们new一个对象后,如果想删除,就让它赋值为null,然后再由GC回收。我想问:有没有想C++中,用delete删除一个对象?
...全文
850 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
real慕华 2019-07-14
  • 打赏
  • 举报
回复
有两个方法finalize()和System.gc(),但是都不能保证立马能回收。
软件老王 2019-07-11
  • 打赏
  • 举报
回复
虚拟机回收,可以给个gc的回收命令,不过有可能提前,也有可能不会。
guishuanglin 2019-07-10
  • 打赏
  • 举报
回复
引用 楼主 leetow2006 的回复:
当我们new一个对象后,如果想删除,就让它赋值为null,然后再由GC回收。我想问:有没有想C++中,用delete删除一个对象?
java 里早点GC掉, 最好的方式: 让对象没有任何人引用, 也没有引用任何人. 如:

Map<Object,Object> map =new HashMap<Object,Object>();
map.clear();
map =null;
		
List<String> list = null;
if(list != null) { list.clear(); }
list =null;
冲上云霄 、 2019-07-10
  • 打赏
  • 举报
回复
引用 6 楼 leetow2006 的回复:
那么finalize这个该如何使用呢
这个已经不推荐使用了
leetow2006 2019-07-10
  • 打赏
  • 举报
回复
那么finalize这个该如何使用呢
Mr.chen108 2019-07-09
  • 打赏
  • 举报
回复
Java,我们没法手动强制回收对象的内存,你可以用finalize()提醒JVM回收对应的对象,但是JVM不一定会执行回收的操作!它还受自身的一些因素来决定是否回收该对象!
mr_foxsand 2019-07-08
  • 打赏
  • 举报
回复
Java中提供了垃圾强制回收机制的方法System.gc(),但是系统并不保证会立即进行垃圾回收,而是JVM根据定义的一套垃圾回收算法来确定,算法用来提高垃圾回收的效率。
leetow2006 2019-07-08
  • 打赏
  • 举报
回复
如果是这样,那么垃圾强制回收机制也没有意义了
ITjavaman 2019-07-06
  • 打赏
  • 举报
回复
这个是没有的,创建和销毁统一由虚拟机管理,虚拟机销毁是不定时的,无法直接控制
CodeBirdHao 2019-07-06
  • 打赏
  • 举报
回复
这个应该没有吧,都是由虚拟机回收的,java里面虚拟机回收栈内存要在空闲时间回收

62,615

社区成员

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

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