Java中内存的问题

学java的时候经常会提到内存的问题,总是会搞的我一头雾水 (我是学java的,学过c,但是只是对c有一定的了解)
怎么补充下 关于内存的知识? 学汇编行吗?

栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。

Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄

至于内存回收,java是自动管理的一般不需要手动干预,但是还是要注意内存泄露的问题
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-18
java提到的内存通常是指Java Heap和Stack;和C/C++中的内存的概念完全不一样;想补充的话,多看看JVM的文档,比如GC垃圾回收等概念。汇编如果用不到的话,没必要学;如果你个人喜好,学习汇编长远来看当然会很有好处。
第2个回答  2013-10-18
学java不用考虑太多内存的问题,不用想太多
相似回答