黑马程序员技术交流社区

标题: 还是关于内存的探讨 [打印本页]

作者: 冯佩    时间: 2013-2-16 10:39
标题: 还是关于内存的探讨
内存的问题有时看似简单却不容易想明白,都知道new出来的实体对象都存放在堆内存中,但不是直接new出来的而是通过方法返回的对象在内存中存放在什么位置呢?比如说Byte[] bytes = abcdef".getBytes();中bytes所引用的对象实体也是存放在堆内存中吗?Date d = new Calendar().getTime();这句代码产生Date对象的原理是不是相当于在getTime()方法中封装了new 的动作,类似于return new Date()吗?如果是,那么代码Console  con = System.console();通过系统类调用静态方法返回的对象的所属类Console是没有构造函数的,这个被返回的对象在内存中又是怎样的呢?
作者: 陈科宇    时间: 2013-2-16 12:36
      呵呵,朋友这只是你的一种误解罢了。实际的对象始终是放在堆内存中的。只是建立对象的方法不止一种。new是一种,单例中的静态方法获取是一种,反射中也可以动态创建对象等。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2