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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mischen 中级黑马   /  2016-5-20 21:13  /  590 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

堆和栈的区别?

6 个回复

倒序浏览
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配
回复 使用道具 举报
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.
堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。
回复 使用道具 举报
栈内存中加载方法,堆内存中创建对象
回复 使用道具 举报
栈 方法压栈 然后调用完弹栈
堆,创建对象,默认初始化。把地址付给对应的方法
回复 使用道具 举报
栈是存储方法和局部变量的,堆是存储new出来的对象------------
当一个.class文件加载进内存的时候,先进的是方法区,方法区有main方法,这jvm也就是java虚拟机会把主方法main压栈,而new来的对象会进堆



系统会分配给堆里的new出来对象的16进制的地址值,栈里的局部变量会记录住这个地址值,当调用的时候会通过地址值把new出来的对象运行起来
回复 使用道具 举报
竟来看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马