栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

全局对象和static的生命周期和内存空间的分类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

全局对象和static的生命周期和内存空间的分类

全局对象和static的生命周期和内存空间分类

面试的时候总会问到内存管理方面的内容,关于内存泄漏和智能指针的内容之后会专门写一篇文章来讲述。

今天来总结一下迷惑了很久的全局对象和static关键字。


文章目录
  • 全局对象和static的生命周期和内存空间分类
  • 一、全局对象
  • 二、局部自动对象
  • 三、局部static对象
  • 内存空间分类
  • 补充


一、全局对象

全局对象在程序启动时分配,在程序结束时销毁。

二、局部自动对象

对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时被销毁。

三、局部static对象

局部static对象在第一次使用前分配,在程序结束时销毁。


内存空间分类
  1. 静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。
  2. 栈内存用来保存定义在函数内的非static对象。

分配在静态内存或栈内存中的对象由编译器自动创建和销毁。

  • 对于栈对象,仅在其定义的程序块运行时才存在
  • static对象在使用之前分配,在程序结束时销毁

补充

除了静态内存和栈内存,每个程序还拥有一个内存池。这部分内存被称作自由空间(free store)或堆(heap)。程序用堆来存储动态内存(dynamically allocate) 的对象——即,那些在程序运行时分配的对象。动态对象的生存周期由程序来控制,也就是说,当动态对象不再使用时,我们的代码必须显示地销毁它们。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号