Java 到底有没有析构函数呢?

Java 到底有没有析构函数呢?



Java 到底有没有析构函数呢?我没能找到任何有关找个的文档。如果没有的话,我要怎么样才能达到一样的效果?



为了使得我的问题更加具体,我写了一个应用程序去处理数据并且说明是有一个重置的按钮会使得应用程序重新回到启动前的状态的。但是所有数据都必须是存活着的除非这个应用程序已经关闭了,或者重置的按钮被按下了。



如果是一个C/C++程序员,我认为这个是很容易实现的(因此我计划后面去实现它)我设计我的程序的结构,使得所有可以被重置的对象都在同一个类里面,为了我可以毁灭掉所有存活的对象当那个重置的按钮一按下。




我在思考如果我只是取消引用,等待垃圾回收器去回收它们,会不会产生内存泄漏呢?如果我频繁的输入数据又按下重置的按钮。无意中想Java已经是一个非常成熟的语言了,它可能有办法阻止这种情况的发生或者优雅地处理掉。

回答



因为java是一门有垃圾回收的语言,你不能预测一个对象什么时候被回收。因此也就没有直接等价的析构函数。


有一个叫 finalize的继承方法,但是这个它的调用完全是由垃圾回收器决定的。所以需要明确需要清理的类,惯例是定义在一个关闭方法里面,并且使用finalize方法只是为了完整性检查。(如果关闭方法没有被调用,就立即执行finalize并且把错误写入日志)



最近一个问题引发了对finalize的深度讨论,如果你想更加深入的话,可以去看看

文章翻译自Stack Overflow:https://stackoverflow.com/questions/171952/is-there-a-destructor-for-java
本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接

Java 到底有没有析构函数呢?
Java 到底有没有析构函数呢?我没能找到任何有关找个的文档。如果没有的话,我要怎么样才能达到一样的效果?

为了使得我的问题更加具体,我写了一个应用程序去处理数据并且说明是有一个重置的按钮会使得应用程序重新回到启动前的状态的。但是所有数据都必须是存活着的除非这个应用程序已经关闭了,或者重置的按钮被按下了。

如果是一个C/C++程序员,我认为这个是很容易实现的(因此我计划后面去实现它)我设计我的程序的结构,使得所有可以被重置的对象都在同一个类里面,为了我可以毁灭掉所有存活的对象当那个重置的按钮一按下。

我在思考如果我只是取消引用,等待垃圾回收器去回收它们,会不会产生内存泄漏呢?如果我频繁的输入数据又按下重置的按钮。无意中想Java已经是一个非常成熟的语言了,它可能有办法阻止这种情况的发生或者优雅地处理掉。

回答
因为java是一门有垃圾回收的语言,你不能预测一个对象什么时候被回收。因此也就没有直接等价的析构函数。

有一个叫 finalize的继承方法,但是这个它的调用完全是由垃圾回收器决定的。所以需要明确需要清理的类,惯例是定义在一个关闭方法里面,并且使用finalize方法只是为了完整性检查。(如果关闭方法没有被调用,就立即执行finalize并且把错误写入日志)

最近一个问题引发了对finalize的深度讨论,如果你想更加深入的话,可以去看看

文章翻译自Stack Overflow:https://stackoverflow.com/questions/171952/is-there-a-destructor-for-java

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

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

相关文章

关于双黑洞和引力波,LIGO科学家回答了这7个你可能会关心的问题

引力波的成功探测,就像双黑洞的碰撞一样,一石激起千层浪。 关于双黑洞和引力波,LIGO科学家回答了这7个你可能会关心的问题 最近,引力波的成功探测,就像双黑洞的碰撞一样,一石激起千层浪。 大家兴奋之余&am…

如何使用HTML,CSS和JavaScript构建技巧计算器

A Tip Calculator is a calculator that calculates a tip based on the percentage of the total bill.小费计算器是根据总账单的百分比计算小费的计算器。 Lets build one now.让我们现在建立一个。 第1步-HTML: (Step 1 - HTML:) We create a form in order to…

用于MLOps的MLflow简介第1部分:Anaconda环境

在这三部分的博客中跟随了演示之后,您将能够: (After following along with the demos in this three part blog you will be able to:) Understand how you and your Data Science teams can improve your MLOps practices using MLflow 了解您和您的数…

[WCF] - 使用 [DataMember] 标记的数据契约需要声明 Set 方法

WCF 数据结构中返回的只读属性 TotalCount 也需要声明 Set 方法。 [DataContract]public class BookShelfDataModel{ public BookShelfDataModel() { BookList new List<BookDataModel>(); } [DataMember] public List<BookDataModel>…

sql注入语句示例大全_SQL Group By语句用示例语法解释

sql注入语句示例大全GROUP BY gives us a way to combine rows and aggregate data.GROUP BY为我们提供了一种合并行和汇总数据的方法。 The data used is from the campaign contributions data we’ve been using in some of these guides.使用的数据来自我们在其中一些指南…

ConcurrentHashMap和Collections.synchronizedMap(Map)的区别是什么?

ConcurrentHashMap和Collections.synchronizedMap(Map)的区别是什么&#xff1f; 我有一个会被多个线程同时修改的Map 在Java的API里面&#xff0c;有3种不同的实现了同步的Map实现 HashtableCollections.synchronizedMap(Map)ConcurrentHashMap 据我所知&#xff0c;HashT…

pymc3 贝叶斯线性回归_使用PyMC3估计的贝叶斯推理能力

pymc3 贝叶斯线性回归内部AI (Inside AI) If you’ve steered clear of Bayesian regression because of its complexity, this article shows how to apply simple MCMC Bayesian Inference to linear data with outliers in Python, using linear regression and Gaussian ra…

Hadoop Streaming详解

一&#xff1a; Hadoop Streaming详解 1、Streaming的作用 Hadoop Streaming框架&#xff0c;最大的好处是&#xff0c;让任何语言编写的map, reduce程序能够在hadoop集群上运行&#xff1b;map/reduce程序只要遵循从标准输入stdin读&#xff0c;写出到标准输出stdout即可 其次…

mongodb分布式集群搭建手记

一、架构简介 目标 单机搭建mongodb分布式集群(副本集 分片集群)&#xff0c;演示mongodb分布式集群的安装部署、简单操作。 说明 在同一个vm启动由两个分片组成的分布式集群&#xff0c;每个分片都是一个PSS(Primary-Secondary-Secondary)模式的数据副本集&#xff1b; Confi…

归约归约冲突_JavaScript映射,归约和过滤-带有代码示例的JS数组函数

归约归约冲突Map, reduce, and filter are all array methods in JavaScript. Each one will iterate over an array and perform a transformation or computation. Each will return a new array based on the result of the function. In this article, you will learn why …

为什么Java里面的静态方法不能是抽象的

为什么Java里面的静态方法不能是抽象的&#xff1f; 问题是为什么Java里面不能定义一个抽象的静态方法&#xff1f;例如&#xff1a; abstract class foo {abstract void bar( ); // <-- this is okabstract static void bar2(); //<-- this isnt why? }回答一 因为抽…

python16_day37【爬虫2】

一、异步非阻塞 1.自定义异步非阻塞 1 import socket2 import select3 4 class Request(object):5 def __init__(self,sock,func,url):6 self.sock sock7 self.func func8 self.url url9 10 def fileno(self): 11 return self.soc…

朴素贝叶斯实现分类_关于朴素贝叶斯分类及其实现的简短教程

朴素贝叶斯实现分类Naive Bayes classification is one of the most simple and popular algorithms in data mining or machine learning (Listed in the top 10 popular algorithms by CRC Press Reference [1]). The basic idea of the Naive Bayes classification is very …

python:改良廖雪峰的使用元类自定义ORM

概要本文仅仅是对廖雪峰老师的使用元类自定义ORM进行改进&#xff0c;并不是要创建一个ORM框架 编写fieldclass Field(object):def __init__(self, column_type,max_length,**kwargs):1&#xff0c;删除了参数name&#xff0c;field参数全部为定义字段类型相关参数&#xff0c;…

2019年度年中回顾总结_我的2019年回顾和我的2020年目标(包括数量和收入)

2019年度年中回顾总结In this post were going to take a look at how 2019 was for me (mostly professionally) and were also going to set some goals for 2020! &#x1f929; 在这篇文章中&#xff0c;我们将了解2019年对我来说(主要是职业)如何&#xff0c;我们还将为20…

在Java里重写equals和hashCode要注意什么问题

问题&#xff1a;在Java里重写equals和hashCode要注意什么问题 重写equals和hashCode有哪些问题或者陷阱需要注意&#xff1f; 回答一 理论&#xff08;对于语言律师或比较倾向于数学的人&#xff09;&#xff1a; equals() (javadoc) 必须定义为一个相等关系&#xff08;它…

vray阴天室内_阴天有话:第1部分

vray阴天室内When working with text data and NLP projects, word-frequency is often a useful feature to identify and look into. However, creating good visuals is often difficult because you don’t have a lot of options outside of bar charts. Lets face it; ba…

【codevs2497】 Acting Cute

这个题个人认为是我目前所做的最难的区间dp了&#xff0c;以前把环变成链的方法在这个题上并不能使用&#xff0c;因为那样可能存在重复计算 我第一遍想的时候就是直接把环变成链了&#xff0c;wa了5个点&#xff0c;然后仔细思考一下就发现了问题 比如这个样例 5 4 1 2 4 1 1 …

渐进式web应用程序_渐进式Web应用程序与加速的移动页面:有什么区别,哪种最适合您?

渐进式web应用程序Do you understand what PWAs and AMPs are, and which might be better for you? Lets have a look and find out.您了解什么是PWA和AMP&#xff0c;哪一种可能更适合您&#xff1f; 让我们看看并找出答案。 So many people own smartphones these days. T…

高光谱图像分类_高光谱图像分析-分类

高光谱图像分类初学者指南 (Beginner’s Guide) This article provides detailed implementation of different classification algorithms on Hyperspectral Images(HSI).本文提供了在高光谱图像(HSI)上不同分类算法的详细实现。 目录 (Table of Contents) Introduction to H…