您的位置:首页 > 编程语言 > Java开发

一个有趣的java创建对象问题

2007-06-13 13:58 309 查看
今天在csdn论坛上看到一个小哥出的一道有趣的java题

说来也简单,只有两句:


for(int i=1;i<1000;i++)




...{


     User user=new User();







问这个User是在内存里创建了1000个对象还是一个对象?

这个问题也似曾相识,可是突然之间问到这样的问题,从沙发开始一大群人都懵掉了

呵呵  仔细想一下答案如下:

每次循环,java使用new创建一个对象,系统都会为之分配一块内存,这一点没错

但是每分配一块内存,user这个引用都会去指向这块新分配的内存空间,所以最终user仅仅指向最后分配的一块内存。

那前面分配的998块内存内呢? 没有任何引用指向它们,所以它们就成为系统的垃圾

会被java的垃圾回收机制kill掉。

呵呵 问题常常就是这样,其实很简单,可是大家都被问懵了  ^  ^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java user kill