内存区域 | 共性 | C++ | Java |
---|---|---|---|
寄存器 | 位于处理器内部,最快的存储区,由编译器根据需求进行分配,无法直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 | C和C++允许向编译器建议寄存器的分配方式。 | |
栈 | 位于通用RAM中,由编译器自动分配释放,存放基本数据类型及对象引用等。创建程序时,系统知道存储在栈内的所有项的确切生命周期。 | C++的局部对象也分配在栈中,函数结束后对象被自动销毁。 | Java不允许创建局部对象,所以Java对象永远不可能存储于此 |
堆 | 位于RAM区,供程序员分配的内存区域(new、malloc) | C++中new、malloc创建的对象或分配的内存空间,使用完后必须手动释放delete、free,否则可能会出现内存泄漏 | Java中new出来的对象或数组。由JVM垃圾回收器进行管理,使用后无需手动释放。 |
其他 | 静态区、文字常量区、程序代码区 | 方法区(也叫静态区),存放整个程序中唯一的元素,如class和static变量,能被所有线程共享。 |
java/c++内存
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本篇目的: c/c++中如何判断大小端的函数 c/c++中通过指针法,移位法获取多字节数据类型中的各个字节 jav...
- org.springframework.beans.factory.UnsatisfiedDependencyEx...