Java中的基本数据类型变量和对象的名称引用变量如定义在方法中,都为局部变量。但对象本身不一定是局部生命周期。如函数外存在其他对该对象的引用变量,则该对象的生命周期延伸至该其他引用变量所在的块。

如从被调用函数参数引用传值或返回值到主调用函数所在的对象类型变量中,则该对象都仍存在(但被调用函数的该对象的引用变量生命周期结束,因此引用变量是局部变量),此时对象突破了局部变量的局部生命期。

Java对象销毁

Java中垃圾收集器自动地定期扫描Java对象的动态内存,并将所有的引用对象加上标记,在对象运行结束后(无引用变量对该对象进行关联),清除其标记,并将所有无标记的对象作为垃圾进行回收,释放垃圾对象所占的内存空间。

对象运行结束后或生命周期结束时,将成为垃圾对象,但并不意味着就立即会被回收,仅当垃圾收集器空闲或内存不足时,才会回收他们。

Java中每个对象都拥有一个finalize()方法:protected void finalize()throws Throwable{}

垃圾回收器在回收对象时自动调用对象的finalize()方法来释放系统资源。

finalize()函数原型:

protected void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

转载于:https://www.cnblogs.com/whongfei/archive/2013/03/05/5247001.html

Java中对象的销毁相关推荐

  1. Java中对象的储存区

    文章目录 1 两个重要的问题 2 C语言中数据的存储区 3 Java中对象的储存区 4 Java为什么采用动态内存分配? 4 为什么基本类型是特例? 1 两个重要的问题 对象的数据位于何处? 如何控制 ...

  2. Java中对象的实例化顺序

    文章目录 1 Java中对象的实例化顺序 1 Java中对象的实例化顺序 继承后的初始化顺序: 静态成员包括静态构造代码块,初始化顺序跟书写顺序有关.

  3. 浅析Java中对象的创建与对象的数据类型转换

    这篇文章主要介绍了Java中对象的创建与对象的数据类型转换,是Java入门学习中的基础知识,需要的朋友可以参考下 Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据 ...

  4. Java中对象的三种状态

    转载自   Java中对象的三种状态 Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可 ...

  5. Java中对象和引用的理解

    2019独角兽企业重金招聘Python工程师标准>>> 偶然想起Java中对象和引用的基本概念,为了加深下对此的理解和认识,特地整理一下相关的知识点,通过具体实例从两者的概念和区别两 ...

  6. java中的的一些生命周期,Java中对象的生命周期

    Java中对象的生命周期 (1) 对象生命周期的开始 对象生命周期开始时,需要为对象分配内存,并且初始化它的实例变量: 对象生命周期结束 Java虚拟机的垃圾回收线程回收对象的内存. (2) 创建一个 ...

  7. Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. ⑵ ...

  8. [转载] java中对象作为参数传递给一个方法,到底是值传递,还是引用传递

    参考链接: 用Java传递和返回对象 看完绝对清晰~ java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? pdd:所谓java只有按值传递:基本类型  值传递:引用类型,地址值传递,所 ...

  9. Java中对象的串行化(Serialization)和transient关键字

    Java中对象的串行化(Serialization)和transient关键字 前言: 该篇文章参考自网上资料,但是部分内容经过笔者更改,因此算作原创吧,原文地址: http://www.golden ...

最新文章

  1. 在Windows server 中搭建sftp服务器(快速)
  2. mysql5.7.20+初始化_MySQL5.7.28 初始化数据库
  3. android ndk 编译c++11,Android NDK的C++11标准支持
  4. html颜色叠加代码,html代码大全(基础使用代码)(颜色代码完整版)
  5. 1月22日发布!疑似渠道商泄露荣耀V40价格:3999元起?
  6. unity DOTS的学习总结之Job System
  7. markdown 图片居中_写作者必备技能:markdown 微信使用markdown
  8. CentOS 6.2目录服务之LDAP(一)
  9. 终端SSH工具SecureCRT 9.2.0 for Mac
  10. PAIP.MYSQL 1045 Access denied for user 'XXXX'@'loca 的解决.txt
  11. FMEA软件功能失效矩阵-交叉表 vs 树形矩阵
  12. 经济应用文写作【6】
  13. layui 勾选不联动父项 树形控件,treetable-lay
  14. 怎么在PDF文档中为文字添加下划线
  15. macOS如何修改Hosts文件
  16. 利用Python3中turtle的绘制超立方体。
  17. 葡萄柚能放冰箱保存吗 葡萄柚怎么保存时间长
  18. 用Seam-gen起步(二)
  19. 基于CNN卷积神经网络实现中文手写汉字识别
  20. 吾爱破解python处理wps文件_太赞了!用Python实现WPS会员功能

热门文章

  1. 前端猎奇系列之探索Python来反补JavaScript——上篇
  2. 洛谷P2672 推销员
  3. 【Unity】5.1 3D坐标系基础知识
  4. C语言嵌入式系统编程修炼之(六)性能优化
  5. cordova ios的问题
  6. mysql低级知识坑
  7. Jboss RestEasy构建简单的RESTful Web Services示例(1)
  8. html文件修改后缀为aspx之后在ie6中格式显示不正确问题的解决办法
  9. JavaScript判断浏览器类型及版本
  10. ubuntu的学习教程(常用操作)