一个有趣的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掉。
呵呵 问题常常就是这样,其实很简单,可是大家都被问懵了 ^ ^
说来也简单,只有两句:
for(int i=1;i<1000;i++)
...{
User user=new User();
}
问这个User是在内存里创建了1000个对象还是一个对象?
这个问题也似曾相识,可是突然之间问到这样的问题,从沙发开始一大群人都懵掉了
呵呵 仔细想一下答案如下:
每次循环,java使用new创建一个对象,系统都会为之分配一块内存,这一点没错
但是每分配一块内存,user这个引用都会去指向这块新分配的内存空间,所以最终user仅仅指向最后分配的一块内存。
那前面分配的998块内存内呢? 没有任何引用指向它们,所以它们就成为系统的垃圾
会被java的垃圾回收机制kill掉。
呵呵 问题常常就是这样,其实很简单,可是大家都被问懵了 ^ ^
相关文章推荐
- 关于String s1 = new String("abc") 创建一个对象问题和Java常量池总结
- java创建一个对象步骤
- java 的单态模式(只可以创建一个对象)
- 关于Java String对象创建问题
- JAVA创建String对象的问题
- java高并发下对象创建过多出现的内存问题
- Java继承:子类和父类创建对象的顺序问题。
- java 创建一个File文件对象
- java创建对象详解和多态问题
- JAVA字符串池问题/String对象创建问题
- Java中如何使某个类的对象唯一性,只能创建一个对象
- 待补充:java类里的私有变量问题,在对象A里有一个对象B,调用对象B的方法获取变量,会有短暂的缓存
- JAVA创建String对象问题
- 一个java对象创建的过程
- java String 对象的创建问题
- 链表带环问题/设计一个类不能被继承/设计一个类只能在堆(栈)上创建对象
- java中判断一个类的对象是否相等问题
- String创建对象的问题(java面试题)
- 关于用java创建一个.properties文件,程序结果为空的问题
- java创建对象详解和多态问题