A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沙子 中级黑马   /  2014-12-20 23:24  /  1361 人查看  /  8 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

方法在被调用时被加载到栈内存中运行,当运行完毕后是就会消除。那么可不可有这样的结论:匿名对象可以直接将方法放入栈内存中运行
而不需要变量的引用?
那么之所以不用常用匿名对象,除了书写不便的是不是应为它还会过多的消耗堆内存的空间,是这样吗?

点评

方法是放在方法区的,产生的匿名对象直接new在堆内存的,存放着属性  发表于 2014-12-21 00:47

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

8 个回复

倒序浏览
匿名对象的创建也是在堆内存完成的,它的方法是在方法区中。
回复 使用道具 举报
匿名对象是创建在堆内存中的,直接在方法区调用方法,它有没有变量名,哪来的占内存
回复 使用道具 举报
和楼上说的一样,它创建的过程是一样的,只是在它执行完之后因为没有被引用,所以被当作垃圾回收。
回复 使用道具 举报
方法是在方法区,对象的创建都是在堆内存中吧,好像不涉及到栈内存。。。
回复 使用道具 举报
不会啊,变量引用的同样要经过堆内存的,在堆内存的中对象实体再调用方法区的方法到栈内存中运行
回复 使用道具 举报
匿名对象不用了直接会被回收吧
回复 使用道具 举报
哇,这都行啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马