java/c++内存

内存区域 共性 C++ Java
寄存器 位于处理器内部,最快的存储区,由编译器根据需求进行分配,无法直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 C和C++允许向编译器建议寄存器的分配方式。
位于通用RAM中,由编译器自动分配释放,存放基本数据类型及对象引用等。创建程序时,系统知道存储在栈内的所有项的确切生命周期。 C++的局部对象也分配在栈中,函数结束后对象被自动销毁。 Java不允许创建局部对象,所以Java对象永远不可能存储于此
位于RAM区,供程序员分配的内存区域(new、malloc) C++中new、malloc创建的对象或分配的内存空间,使用完后必须手动释放delete、free,否则可能会出现内存泄漏 Java中new出来的对象或数组。由JVM垃圾回收器进行管理,使用后无需手动释放。
其他 静态区、文字常量区、程序代码区 方法区(也叫静态区),存放整个程序中唯一的元素,如class和static变量,能被所有线程共享。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容