面向对象之内存分析(一)

本文将探讨面向对象编程中的内存管理,从内存视角解析代码执行时的状态。内容涵盖代码区、数据区、堆区和栈区的作用,强调理解内存对于掌握面向对象编程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读

自本篇博客起,我将整理一些面向对象的基本知识,从内存视角看代码在执行过程中内存中的变化状态。 前几篇博客将写一些不太深入的,比较基础的知识,后几篇博客将会从java虚拟机角度来详细分析类加载以及对象生命周期过程中内存的变化。深刻理解内存,是学好面向对象的基石。

简单分析类加载和初始化 

 

内存的基本结构

 

各个区域的作用

 

代码区:存放CPU执行的机器指令或加载到代码区中的二进制类文件等。代码区是可共享,并且是只读的。

数据区:常量区和静态数据区(全局变量和静态变量[static声明]),存放类成员的属性值。

堆区: 存放对象。(对象就是一小块存储空间,实际上存储的内容包括类成员的属性和方法的地址

栈区: 在程序运行过程中由编译器实时自动分配和释放,存放进程入口地址,临时存放:对象地址、函数的参数值、返回值和局部变量。

      总结:分析代码或者看一些技术内容,站在内存角度看问题,才会有更直观的感受,其实计算机的理论

知识是站在物理硬件运行原理和规律总结出的,再加以丰富,成为一种实用性,可理解性的知识。大学时学

习过模拟电路,数字电路,单片机,汇编语言等,硬件的运行原理也只是明白一个大致过程。 总之,我很认

同马士兵曾经说过的一句话:理解了内存就理解了一切!

        了解的知识有限,难免有不完善的地方,还望各位在评论中提出建议,帮助我提高。

   

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值