一直在犹豫是不是应该写学习笔记^^写的话要耗费不少的时间,但是不写的话又很容易忘记,除非你所学的就是你工作中所用的,这样学以致用后,
就很久不忘记了. 不过可惜的是,我所学的东西基本都不能在工作中使用,所以还是必须要把学习的心得体会记录下来,否则的话,用不了多久,曾经付出了
好多精力深刻理解过的东西又会变得陌生,就像没见过一样...所以,要坚持写....
内存,是PC中很重要的一部分. 在过去的操作系统中,一个应用程序(.exe文件),用户双击它以后, OS要把它载入到内存中才能够执行. 如果你有一个16M的内存,那么你不能够执行一个17M的应用程序. 现在,OS可以把硬盘的容量(叫做虚拟内存 virtual Memory) 当作内存来使用.所以基本上不会出现因为应用程序太大而不能够成功载入的情况了.
从程序员的角度出发来讲, 在现在的windows中, 程序员可以使用4GB的内存地址来编程. 为什么是4GB呢? 事实上真正的内存条并没有达到4GB.
我们把硬盘的空间来当作内存来使用. 在windows中,我们利用指针来保存内存地址,32位的OS, 最大值能达到0xffffffff,
也就是0xffffffff/1024/1024/1024 = 4GB.
在了解"虚拟内存"的概念之前,我写出来的应用程序照样可以跑的好好的.那是因为我在程序中调用的都是C的库函数,这些函数都已经把内存方面的
事情给处理好了,比如说malloc/free.在它们的内部调用了windows内存管理函数(比如说virtualAlloc函数或者说HeapAlloc函数).