`
insertyou
  • 浏览: 906121 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

对象的生命周期回顾篇

 
阅读更多


一、对象的三个阶段


对象大概来看应该有创建阶段,使用阶段和销毁阶段。

创建对象的方法有显式创建和隐式创建两种。

1.显式创建:

(1)new

(2)反射

(3)克隆

(4)反序列化

2.隐式创建:比如当一个类被加载后就会在堆区创建一个Class对象,这是程序员所不知道的。


二、对象的状态分类:


1.可触及状态:被创建后的状态。

2.可复活状态:没有引用变量引用该对象时。

3.不可触及对象:被垃圾回收的时候。


三、finalize方法


在对象进入可复活状态后,垃圾回收之前,会调用finalize()方法,当然这只是理想状态,有可能不会调用,因此finalize()方法存在很多的不确定性,一般不使用finalize();


四、垃圾回收


垃圾回收线程是一个优先级很低的线程,因此有时候永远都轮不到垃圾回收,比如当调用了System.gc()时,程序只是建议催促垃圾回收线程回收垃圾,而垃圾回收线程来不来回收是不确定的。


五、对象的引用分类java.lang.ref


1.强引用:垃圾回收器永远不会回收他。

2.软引用:如果内存够,则不回收他,如果内存不够,则会回收他。SoftReference

3.弱引用:不管内存够不够,只要垃圾回收器扫描到他,则回收他。WeakReference

4.虚引用:可有可无,任何时候都可以被回收。PhantomReference




分享到:
评论

相关推荐

    ATL 揭秘之“对象创建”篇

    - **生命周期管理**:通过引用计数(`AddRef`和`Release`)来管理对象的生命周期。 #### 3. ATL COM对象实现 ATL通过分层的方式实现COM对象的不同特性,每个层次处理COM对象的特定方面。 **3.1 基础类:...

    c++语言知识点总结 英文版 适合查询和快速回顾知识点

    生命周期指的是对象从创建到销毁的过程。 8. 内置类型:包括指针、数组、引用等。 9. 语句和声明:语句如if、for、while等;声明包括类型声明和变量声明。 10. 函数:函数可以重载、有默认参数,也可以有未指定参数...

    python学习--对象特殊方法列表

    在Python编程语言中,对象的特殊方法(也称为魔术方法)是用于实现特定行为的一组预定义的方法。这些方法的名字通常以两个下划线开头和...在阅读博客和示例代码后,你将能够更自如地驾驭Python对象的生命周期和行为。

    实战OO 开启征程 结尾篇

    状态图是另一种UML图,用于描述对象在其生命周期中状态的变化以及导致这些变化的事件。虽然实战OO系列中未重点提及,但状态图对于理解对象的行为至关重要,尤其是在那些状态转换频繁或复杂的系统中。 **组成要素** ...

    一篇文章助力大家理解Python 代码中的垃圾回收机制.docx

    在Python中,对象的生命周期受到引用计数的影响。每当有一个引用指向一个对象时,它的引用计数就增加1;当引用失效或被删除时,引用计数减1。当对象的引用计数变为0时,通常意味着该对象不再被使用,因此会被垃圾...

    Java基础 反射篇.md

    1. **Spring的IOC容器**:Spring框架利用反射机制来管理Bean的生命周期,包括创建Bean实例、依赖注入等。 2. **反射 + 抽象工厂模式**:通过反射动态创建特定类型的对象,增强了系统的可扩展性和可维护性。 3. **...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    3.7.1 application的生命周期 3.7.2 application中数据的操作 3.7.3 Web应用初始化参数的配置 3.7.4 application对象应用示例 3.8 其他内置对象的应用 3.8.1 应答与请求的page对象 3.8.2 页面上下文的page Context...

    Java语言程序设计-进阶篇(原书第8版).

    5. 多线程与并发编程:Java提供了强大的多线程支持,本书会讲解线程的基本概念、线程的生命周期、线程同步机制、并发工具类等,并讨论在多线程编程中可能遇到的问题和解决方案。 6. I/O流与文件操作:Java提供了...

    JAVA文档

    - Java的垃圾收集器自动管理内存,但开发者仍需理解对象的生命周期。例如,当一个对象不再被引用时,它将变为垃圾,等待垃圾收集器回收。在上述例子中,旧的String对象在新对象创建后变得无引用,最终会被垃圾收集...

    信息系统项目管理师学习笔记(考前知识点回顾 强化记忆)

    信息系统项目管理师是负责管理信息系统的开发、实施和运营的专业人士,其工作...这些知识和技能的结合,有助于信息系统项目管理师在项目生命周期的各个阶段,有效地控制项目进度、成本和质量,确保项目目标的顺利实现。

    java实训报告集锦7篇.docx

    3. 熟悉Applet程序的开发,理解其在网络环境下的运行机制和生命周期管理。 4. 提高问题分析能力,能根据需求设计合理的算法和数据结构。 5. 增强程序设计和调试技巧,通过实际项目训练,提升编程实战能力。 6. ...

    你必须知道的.NET

    最后,文章详细阐述了对象创建的过程,包括构造函数的调用顺序,静态成员的初始化,以及如何管理对象生命周期。这些内容对于理解和优化.NET代码的性能至关重要。 总的来说,【你必须知道的.NET】系列是一个全面而...

    java实习周记25篇借鉴.pdf

    我了解到线程的生命周期、同步与通信机制,以及如何处理线程安全问题。对于I/O部分,我研究了输入输出流的使用,包括文件操作和网络编程的基础。这一周的实习让我认识到并发编程的复杂性以及Java在处理I/O操作上的...

    ASP.NET数据库开发实用工程案例精选_2

    6. **页面生命周期**:阐述ASP.NET页面从请求到响应的完整生命周期,理解各个阶段的作用和操作时机。 7. **安全性**:包括身份验证、授权、防止SQL注入和跨站脚本攻击等,确保Web应用的安全性。 8. **部署与调试**...

    福建农林大学-基于UML的新闻管理系统分析与设计.docx

    - 状态图:描述了系统中对象的状态变化,有助于理解对象生命周期。 3. 系统设计 - 软件体系结构设计:确定系统的模块划分,选择合适的架构模式,如客户端-服务器(C/S)、浏览器-服务器(B/S)等。 - 界面设计:...

    Think in c#

    - **对象景观与生命周期** 这一部分介绍了对象从创建到销毁的整个过程,包括初始化、清理等阶段。 - **集合与迭代器** 集合是一组数据项的容器,而迭代器则是遍历这些数据项的工具。C# 提供了丰富的集合类库...

    unity 初学者笔记_思维导图类型_Xmind文件

    `MonoBehaviour`是所有用户脚本的基类,它包含了各种生命周期方法,如`Start()`、`Update()`,分别在对象创建和每一帧时调用,是编写游戏逻辑的核心。 在Unity的学习过程中,理解场景、游戏对象、组件的关系至关...

    软件毕业答辩范例ppt课件.ppt

    综上所述,这篇答辩PPT涵盖了Android应用开发的关键知识点,包括软件设计原则、用户界面设计、手势识别、应用生命周期管理和数据传递等,同时体现了个人成长和团队合作的价值。这不仅是对一项具体项目的总结,也是对...

    The Essence of C++_Bjarne Stroustrup

    2. **RAII**:将资源分配与对象的生命周期绑定在一起,确保资源在对象销毁时自动释放,从而避免了显式调用析构函数的需要。 #### 四、挑战与未来方向 Stroustrup还提到了一些C++面临的挑战,包括如何简化泛型编程...

    2019年python自动化运维进阶篇20期视频教程-百度网盘下载视频

    │ 07 vue 生命周期.51reboot.mp4 │ 08 vue 组件化开发.51reboot.mp4 │ 09 vue 组件通信.51reboot.mp4 │ vue cli 工程.51reboot.mp4 │ ├─08.第八天 │ 01 vue-admin环境.51reboot.mp4 │ 02 vue对接drf.51...

Global site tag (gtag.js) - Google Analytics