Java程序运行时,操作系统内存与JVM内存的各自作用???

通过QQ群友讲解,我有如下理解,我不知道对不对,还请 Java 高手指教一下,小弟万分感谢!!
-------------------------------------------------------------------------------------------------------------------------
我的理解是这样的:

虽然 JVM 是 Java 虚拟的计算机,同样有堆内存和栈内存。但 Java 程序运行时,供成员变量存储的堆内存,以及供局部变量存储的栈内存,都是由操作系统(如 Windows, Linux等)提供。而 JVM 的堆内存和栈内存,其作用是调用操作系统的内存或文件后进行模拟用的。

-------------------------------------------------------------------------------------------------------------------------
请知道的朋友多多指教!!
因为我是自学的,没有老师讲解,所以碰到问题就只能在网上寻求帮助了。

第1个回答  2009-12-02
自学,偶像...(看来不回答不行了 ....)
其实内存都是操作系统分配的, 你可以把jvm想像成一个中间层运行环境(java程序运行的支持,就是一种支持..)就得了就像那种.net framwork 那样的东东. 不用太在意....

程序
|
jvm
|
操作系统

我楼上的都是正解:

引用楼上的话

当然。
把JVM看成是个中间层就可以,不止是内存分配,还有线程、网络连接等等,最终在底层都要靠操作系统来搞。

Java语言的设计思想,本来就是对C语言这种可以直接进行操作系统调用的语言的一种简化。引入了一个隔离层,让jvm来当个中介,以简化应用开发。让程序员集中精力于实现业务逻辑。
(修补下 准确的说是C++,不是C.....让jvm当中介
以实现跨平台.以...)

恩,楼上说的对,jvm就是连接java程序跟操作系统的中间层,程序用到的内存都是从这里分配得到的,而jvm的内存是从系统内存得到的。
第2个回答  2009-11-30
当然。

把JVM看成是个中间层就可以,不止是内存分配,还有线程、网络连接等等,最终在底层都要靠操作系统来搞。

Java语言的设计思想,本来就是对C语言这种可以直接进行操作系统调用的语言的一种简化。引入了一个隔离层,让jvm来当个中介,以简化应用开发。让程序员集中精力于实现业务逻辑。本回答被提问者采纳
第3个回答  2009-12-02
恩,楼上说的对,jvm就是连接java程序跟操作系统的中间层,程序用到的内存都是从这里分配得到的,而jvm的内存是从系统内存得到的。
相似回答