当用Java编写的程序运行时,它的所有类都将被加载到主内存中吗?如果是这样,是不是浪费了RAM?
不行,因为虚拟地址空间和虚拟内存.阅读这些:
http://en.wikipedia.org/wiki/Virtual_memory
http://en.wikipedia.org/wiki/Virtual_address_space
虚拟内存意味着您可以将大量内容加载到内存中,并将未使用的部分保存到光盘并从物理RAM中移出.
虚拟地址空间意味着每个进程(进程的一个示例是您的Java程序)都有自己的地址空间,因此它不会"窃取"其他进程的地址.