请教:关于栈与堆的区别 请教:关于栈与堆的主要区别是什么?我理解的是在编译时就在stack中给基本类型变量分配内存。而在程序运行时在heap中给对象分配内存。上述理解对否? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 stack中给基本类型变量和对象引用类型分配内存。heap中给对象分配内存。 栈快,堆慢基本类型变量和对象reference、数组存在栈里其它对象基本上都在堆里 栈: 在栈里面存放的数据必须预先知道它的大小和作用范围,编译器生成相应的代码,以便向上和向下移动指针 (创建活释放) 速度快,而且它里面的数据可以共享。 存放对象的引用和基本数据类型的数据堆: 程序运行动态分配,需要程序员去释放它(在JAVA中由garbage collections负责释放),速度慢,但大小和存在时间不受限制。 用new 生成的JAVA对象就在堆里 你可以试试把socket的inputstream导入到Scanner,用Scanner的nextLine() 这段代码if下return 到哪里了?? 新手求助 解释XML 多事件处理怎么只有一个显示输入字符 求开发一个自动转存的程序 一个最基本的I/O问题 来编这个程序,简单的switch 问题 DatagramSocket怎样在一个数据包里面包含多种类型的数据 页面上点击button后使其禁止点击的javascript函数如何写? JBuilder中类的java路径 eclipse里面显示reflect包的地方怎么有两处?
heap中给对象分配内存。
基本类型变量和对象reference、数组存在栈里
其它对象基本上都在堆里
在栈里面存放的数据必须预先知道它的大小和作用范围,编译器生成相应的代码,以便向上和向下移动指针 (创建活释放)
速度快,而且它里面的数据可以共享。
存放对象的引用和基本数据类型的数据
堆:
程序运行动态分配,需要程序员去释放它(在JAVA中由garbage collections负责释放),速度慢,但大小和存在时间不受限制。
用new 生成的JAVA对象就在堆里