关于JAVA内存管理的问题(100分)

mufengqing 2003-11-28 12:48:46
老师今天讲了一个关于内存管理的问题,不太懂,请各位明白人讲解一下,小费付上!
老师讲述:
java会全占内存,然后把内存分为等分的两块,一块被充分利用,一块是空的,然后在固定的时间内会把占用的那块内存里的内容移到空的那半内存里,在这个过程中去掉已经失效的对象(称起为JAVA回收机制的本质)。

我的疑问:
JAVA是怎样进行内存占用和分配的,垃圾回收机制浅显的说怎么回事,为什么会影响效率?
...全文
57 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yema55 2003-11-30
  • 打赏
  • 举报
回复
分配在栈里的对象是生存期已经知道了的
分配在堆里的对象是生存期不可预知的,所以需要用到垃圾收集器
垃圾收集器是一个线程,会在一定的时间将没有被引用的对象所占的空间收回
所以会影响到程序的执行效率
fpwang 2003-11-30
  • 打赏
  • 举报
回复
up
mufengqing 2003-11-29
  • 打赏
  • 举报
回复
java内存分配与C++不同点在哪里?

还有java的值传递是怎样进行的(其实我想问堆和栈怎样结合完成的值传递的)
我知道C++的参数之间的传递只是通过栈来实现,而JAVA不可能只通过堆实现值传递。
moke33 2003-11-28
  • 打赏
  • 举报
回复
java大部分是在堆中分配,这与在栈中分配显然速度慢了许多
垃圾回收机制就是,有一个线程每隔一段时间就会自动搜索,查找不再被引用的对象,即把它当所垃圾收回内存
truezerg 2003-11-28
  • 打赏
  • 举报
回复
垃圾回收有多种算法。 每种算法都有利有辟。 不同的jvm可能实现的算法也不一样
truezerg 2003-11-28
  • 打赏
  • 举报
回复
简单的说垃圾回收就是将没有用的对象释放掉。 没有用的象像是指哪能些没有被引用到的对象。 当然,二个对象或几个对象循环引用也将被回收。
punpuny 2003-11-28
  • 打赏
  • 举报
回复
内存不足时,java会进行一次搜索,将所有没有使用的object做上标记,然后将没有做标记的拷贝到另一块区域。这样就实现了一次垃圾回收。
punpuny 2003-11-28
  • 打赏
  • 举报
回复
你们老师讲的可能是garbage collection的mark and copy机制
mufengqing 2003-11-28
  • 打赏
  • 举报
回复
渴望
非常渴望
要不然
晚上睡不着觉呀!!!!!!
mufengqing 2003-11-28
  • 打赏
  • 举报
回复
还是疑惑。
liuyushen 2003-11-28
  • 打赏
  • 举报
回复
你们老师说的,只是垃圾处理机制的算法之一。不同的虚拟机,算法是不一样的。
mufengqing 2003-11-28
  • 打赏
  • 举报
回复
我老师说得全占内存是真的吗?是真的平分内存?
还有java的值传递是怎样进行的(其实我想问堆和栈怎样结合完成的值传递的)
我知道C++的参数之间的传递只是通过栈来实现,而JAVA不可能只通过堆实现值传递。
不要跟我说堆栈,因为堆,栈根本就不是一个东西?

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧