java三态_Java中对象的三种状态

Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究。

状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可达状态。

状态二:可复活态:从根节点开始,无论如何都不能访问到这个对象,也就是说这个对象的所有引用都被释放,没有任何变量引用该对象了,

但是该对象有可能在finalize()方法中再次被引用,从而复活。

状态三:不可触及态:对象的所有引用都被释放了,并且在对象的finalize()方法中没有复活,这样的话该对象就是不可触及状态。

对于状态三我再解释下,所有对象都有finalize()方法,并且该方法只会被执行一次,并且它的执行时间是随机的,一般在我们为变量赋值为null后,

会执行,如果我们在某个对象的finalize()方法中为他增加了引用,那么该对象会复活,但是当我们再次为其赋值为null时,finalize()方法不会被执行了,

因为该方法知执行一次,该对象也就变成了不可触及态。

说到finalize()方法,我再多说点,有的书上写,可以在finalize()方法中释放某些资源,其实这并不被我们所推荐,主要有两点:

1、finalize()方法执行的时间不确定,那么这就会导致资源还没来得及释放,又有一个线程需要访问资源,可能会产生异常错误。尤其是在多线程程序中。

2、finalize()方法中可能会发生引用外泄,无意中复活对象,从而产能生内存泄漏。

推荐在try-catch-finally结构的finally块中释放资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 实现sha_加密算法 MD5 和 SHA 的 JAVA 实现

首先先简单的介绍一下MD5 和 SHA 算法然后看一下在 java.security.MessageDigest (信息摘要包下) 如何分别实现 md5 加密 和 sha 加密最后在看一下 使用httpclient包 依赖下的 commons-codec-org. 包 下的apache.commons.codec.digest.DigestUtils 这个工具类 是如何快速…

java 操作db2_java操作DB2,增删改查

//:Db2ConnTest/***功能:实现连接DB2数据库,并实现基本获取数据功能*jiangbin*/import java.sql.*;import java.util.*;SuppressWarnings("unchecked")public class Db2ConnTest{Connection conn;Statement stat;ResultSet rs;ResultSetMetaDa…

java会员充值算法_[蓝桥杯][算法训练VIP]数的统计-题解(Java代码)详解

解题思路:注意事项:参考代码:import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scnew Scanner(System.in);int nsc.nextInt();int ns[]new int[n];for (int i 0; i ns[i]sc.next…

java loadonstartup_java的web配置文件的“load-on-startup0/load-on-startup”一个问题

展开全部load-on-startup标记容器是否32313133353236313431303231363533e78988e69d8331333365643662在启动的时候实例化并调用其init()方法的优先级。它的值表示 servlet应该被载入的顺序。当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet。.如…

java隋唐演义游戏下载_JAVA多线程

第一节 多线程背景知识介绍多线程作用:可以帮助简化模型,还能编写强大的代码。进程与线程的基础概念:Eclipse QQ都属于进程。进程是程序(任务)的执行过程,它持有资源(共享内存、共享文件)和线程。它包含两点:1.动态性&…

friso mysql_非sqlite和nigix的开源c项目

一。friso中文分词器Friso是使用c语言开发的一款高性能中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP等。同时支持对UTF-8/GBK编码的切分。类Python语法…

packageinfo.java_package-info.java文件详解

package-info.java文件详解一、pacakge-info.java介绍pacakge-info.java是一个Java文件,可以添加到任何的Java源码包中。pacakge-info.java的目标是提供一个包级的文档说明或者是包级的注释。pacakge-info.java文件中,唯一要求包含的内容是包的声明语句&…

java实验七实验报告_Java实验报告-7-风扇

Java实验报告实验题目实验七综合实验风扇代码:import java.awt.Col or;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class Fengshan {public static void main(String[] args) …

java classpath设置_Java CLASSPATH设置

Java CLASSPATH设置CLASSPATH: CLASSPATH是一个环境变量,Application ClassLoader使用它来定位和加载.class文件。 CLASSPATH定义路径,以查找不是扩展或Java平台一部分的第三方和用户定义的类。设置CLASSPATH时,请包括所有包含.class文件和JA…

java单例方法_Java单例模式

单例模式,是特别常见的一种设计模式,因此我们有必要对它的概念和几种常见的写法非常了解,而且这也是面试中常问的知识点。所谓单例模式,就是所有的请求都用一个对象来处理,如我们常用的Spring默认就是单例的&#xff0…

process java类_Java中Process类的用途是什么?

Java.lang.Process是Object类的子类,可以描述由Runtime类的exec()方法启动的进程。 进程和对象控制进程并获取有关该进程的信息。 Process类是抽象类,因此无法实例化。 Process类的重要方法是Destroy()、exitValue()、getErrorStream()、waitFor()、getI…

cscript 执行代码_WSCRIPT与CScript区别

WSCRIPT与CScript区别窗口中运行,WSCRIPT;命令行中运行,CScrip;cscript因为把输出放进了控制台 所以可以对它重定向 方便程序调用wscript直接用窗口输出 适合调试程序和编写小工具 在windows下不用cmd的话cscript的输出会一闪而过 大多数情况下&#xff…

java虚拟机内存模型种类_深入理解volatile类型——从Java虚拟机内存模型角度

一、前言在java多线程编程中,volatile可以用来定义轻量级的共享变量,它比synchronized的使用成本更低,因为它不会引起线程上下文的切换和调度。所谓知己知彼、百战不殆。本文从JVM内存模型角度,探讨volatile的实现原理。在明白了v…

寒武纪芯片创始人:要让AI芯片计算效率提高一万倍

来源: 传感器技术 概要:随着利好政策的不断出台以及行业的持续发展,芯片相关产业站上风口。 随着利好政策的不断出台以及行业的持续发展,芯片相关产业站上风口。而AI芯片独角兽公司寒武纪,也即将入驻雄安新区。e公司记…

SQL模糊查询语句和Escape转义字符

来源:http://www.cnblogs.com/amylis_chen/archive/2010/07/16/1778921.html 通配符 描述 示例 % 包含零个或更多字符的任意字符串。 WHERE title LIKE %computer% 将查找处于书名任意位置的包含单词 computer 的所有书名。 _(下划线) 任何…

JAVA格式化同一天时间间隔_java中时间格式化怎么去时间间隔值

java中时间格式化怎么去时间间隔值关注:61 答案:2 mip版解决时间 2021-01-12 11:52提问者眼泪↓流到叻心里2021-01-11 20:30比如2015-02-03 13:25:55 与 2015-02-04 15:25:55 之间的时间间隔怎么获取最佳答案二级知识专家守給你的承諾2021-01-11 21:46转换成秒-相减取绝对值。…

超美国11倍!麦肯锡176页报告解读数字中国领先全球的秘密

来源:智东西 概要:到2030年,数字化将转变并创造高达45%的行业总收入。 12月4日,麦肯锡发布了长达176页的中国数字经济报告。 报告显示,中国电子商务(2016年交易额占全球40%)和数字支付&#xf…

SQL Server查询中特殊字符的处理方法

来源:http://database.51cto.com/art/201009/227766.htm SQL Server查询中,经常会遇到一些特殊字符,比如单引号“”等,这些字符的处理方法,是SQL Server用户都应该需要知道的。 我们都知道SQL Server查询过程中&…

JAVA发送邮件工具包_java mail 发送邮件工具包

Java测试发送邮件的时候经常出现异常,检查多次账户名密码无误后,依然出现如下图错误: 之前不清楚,后面在网上得到提醒,我们所使用的smtp服务器使用的密码与我们自身登录网页端邮箱的密码是不一样的,以163邮…

卡内基梅隆大学提出基于学习的动作捕捉模型,用自监督学习实现人类3D动作追踪

原文来源:Cornell University Library 作者:Hsiao-Yu Fish Tung、Hsiao-Wei Tung、Ersin Yumer、 Katerina Fragkiadaki 「雷克世界」编译:我是卡布达、哆啦A亮 目前,从单摄像头中进行动作捕捉(motioncapture&#xff…