首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AutoCloseable迭代器到ResultSet调用是否应该从终结器关闭?

AutoCloseable迭代器到ResultSet调用是否应该从终结器关闭?
EN

Stack Overflow用户
提问于 2015-03-11 10:31:34
回答 1查看 766关注 0票数 0

我有一个ResultSet支持的Iterator。我需要做行级的后处理。迭代器实现AutoCloseable整数。连接一直保持打开状态,直到我们遍历被用户中断的所有行/迭代。如果迭代器的使用者显式调用close()方法或将迭代器的使用包装在Java7 try块中,那么一切都很好。但是,如果使用者不这样做,我不能保证连接将返回到池中。在C#世界中,我们将执行终结器并从终结器调用Dispose(bool)作为后备选项。我们应该用Java来做同样的事情吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-11 10:44:38

这种清理通常不是在Java finalize()方法中完成的(自Java9起就不再推荐了)。未能确保正确处理资源是编程错误;尝试在错误编程之后进行清理将使错误做法得以继续。

更常见的是一个调试选项,可以帮助已经承认自己有问题的开发人员。通常在默认情况下这是不启用的,因为涉及到开销,但是当打开正确的标志时,当资源被分配时会创建堆栈跟踪。如果在未正确销毁资源的情况下调用finalize(),则记录堆栈以显示泄漏的位置。

关于finalize()有许多警告,您通常应该避免它。本例中的主要问题之一是无法保证它将被调用,即使是这样,也可能没有及时提供帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28994628

复制
相关文章
迭代器模式 迭代器模式
提供一种顺序访问集合的元素而不暴露其底层表示的方法。 ——《设计模式:可复用面向对象软件的基础》
mingmingcome
2021/12/09
6720
迭代器模式
    





        迭代器模式
迭代器
迭代器是操作集合的工具,当我们已经创建了一个迭代器之后,我们就不能再对原集合进行修改,否则可能报错出现问题
秋落雨微凉
2022/12/07
6540
迭代器
迭代器:迭代的工具。迭代是更新换代,如你爷爷生了你爹,你爹生了你,迭代也可以说成是重复,并且但每一次的重复都是基于上一次的结果来的。如计算机中的迭代开发,就是基于软件的上一个版本更新。以下代码就不是迭代,它只是单纯的重复
py3study
2020/01/16
5260
从理解到实现轻松掌握 ES6 中的迭代器
JavaScript 中除了 Array 之外,ES6 还新增加了 Map、Set 结构,当我们需要操作这些数据时,就需要一种统一的接口来处理这些不同的数据结构。ES6 中新增加的 Iterator(迭代器)就提供了这样一种机制。
五月君
2020/11/19
4620
从理解到实现轻松掌握 ES6 中的迭代器
Python迭代器的用法,next()方法的调用
可迭代的(Iterable):就是可以for循环取数据的,比如字典、列表、元组、字符串等,不可使用next()方法。
狼啸风云
2020/07/15
2.2K0
iterator迭代器详解_迭代器是什么
在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.
全栈程序员站长
2022/09/22
4560
iterator迭代器详解_迭代器是什么
Python进阶:迭代器与迭代器切片
在前两篇关于 Python 切片的文章中,我们学习了切片的基础用法、高级用法、使用误区,以及自定义对象如何实现切片用法(相关链接见文末)。本文是切片系列的第三篇,主要内容是迭代器切片。
Python猫
2019/04/10
1.6K1
Python进阶:迭代器与迭代器切片
从join的实现窥探MySQL迭代器
在sys_yacc.yy文件内解析t1 left join t2 on t1.c=t2.a;对应处理位置
GreatSQL社区
2023/02/23
6240
Python迭代器及自定义迭代器
在Python中,对list、tuple、str等类型的数据可以使用for...in...的循环语法,从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。
Python碎片公众号
2021/02/26
1K0
Python迭代器及自定义迭代器
枚举器与迭代器
这次我们再次来讲解一下开发人员会用但不理解的C#中的知识,这篇文章我们讲解一下枚举器与迭代器的知识。
喵叔
2020/09/08
4580
枚举器与迭代器
迭代(iterable)和迭代器
简介: 迭代(iterable) #任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环 d = {'a': 1, 'b': 2, 'c': 3} #对dict迭代 for k,v in d.
狼啸风云
2020/07/06
8530
迭代器模式
迭代器模式(Iterator): 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 用途:在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“ 同一种算法在多种集合对象上进行操作”提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方法。 举个例子: Iterator it = list.iterator();
xiangzhihong
2018/02/05
5100
迭代器模式
Python迭代器
迭代,顾名思义就是重复做一些事很多次(就现在循环中做的那样)。迭代器是实现了__next__()方法的对象(这个方法在调用时不需要任何参数),我们在说的具体一点就是它是的实现是具有,定义了__iter__()方法和next()方法的对象。它是访问可迭代序列的一种方式,通常其从序列的第一个元素开始访问,直到所有的元素都被访问才结束。
云深无际
2021/03/12
6720
Python迭代器
迭代器Iterator
凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
用户8442333
2021/12/02
3080
迭代器模式
java中的迭代器想必大家都用过,但是大家知道他的性能以及实现原理吗?今天就来介绍一波 实际上foreach封装了迭代器,迭代器又封装了for循环,这样一来,谁的效率高就明白了了吧!
gfu
2019/08/29
3430
反向迭代器
code-child
2023/05/30
1700
Python迭代器
前面我们学过迭代,可以直接用for循环的都是可迭代对象,可用于for循环的数据类型有以下几种:
小破孩的梦想空间
2020/04/23
5280
迭代器模式
---- 还是老样子,无需求,不设计。更好的设计只是为了解决需求而诞生 有这样的一个需求: 需要写一个程序,展示学校院系结构,。并且要在要在一个页面展示出学校院系的组成,一个学校有多少个学院,一个学院
@派大星
2023/06/28
1310
迭代器模式
python 迭代器
一类是generator,包括生成器和带yield的generator function。
py3study
2018/08/02
6170
Java迭代器
  Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList、LinkedList、HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组;LinkedList是链表结构的;HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。
用户7353950
2022/05/10
5180

相似问题

如何在关闭windows窗体时调用终结器?

220

应该避免从非const迭代器到const迭代器的转换吗?

20

未调用终结器

36

如何从类终结器调用DisposeAsync?

118

从迭代器调用迭代器,绑定参数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文