Lee出品,转载请注明出处http://blog.csdn.net/hnulwt/article/details/42934365
对于软件开发者而言,理解和熟悉计算机内存知识是很基础的。今天我就来翻翻旧账,回顾看看有哪些点遗漏了,在此共同学习。
提起内存,我们常常想到三个区域:
1,静态区,静态变量 static variables / constant ,常量,静态变量就存储在静态区域,这个区域比较简单,只需要知道怎么通过地址访问他就行了。
2,堆 动态变量 关键字new 。通过new 创建的对象,会存储在堆中。 java中当new的对象不再被引用时候,垃圾回收器就会在适当的时候回收这部分内存。在C/C++中则需要手动释放。
3,栈,,也叫堆栈(这里要注意堆栈 和 栈 是不同的)局部变量 创建的值会存储在栈中。
我们看看计算机中静态区域、堆、栈在内存中图示:
我们试着来分析一段Java代码,来看看内存究竟是如何分配的。
先看看代码,代码很简单: