用伪代码更好地解释自己。我目前正在学习Java。
如果我有方法
public resultSet getEverything()
{
resultSet rs = blabla;
return rs
}
我不能,rs.close()因为我需要在检索它的方法中使用它,因此我将使用它,并且可能“关闭”我创建的新resultSet。
与先前的resultSet会发生什么?是否留给垃圾收集器收集?当我关闭“新” resultSet时,它会自行关闭吗?对代码效率/性能有影响吗?
任何反馈将不胜感激:),因为这让我有些困惑。我认为这更多是一个OOP问题,而不是Java。谢谢!
您不应该从方法中返回java.sql.ResultSet。应该始终创建它,将其映射到对象或数据结构中,并在finally块中在创建它的方法范围内将其关闭。
java.sql.ResultSet与数据库游标(一种稀缺资源)相关联。您不想长时间保持打开状态。
垃圾收集器不会清理结果集,语句或与数据库的连接。它将从内存中删除引用,但是游标或连接仍将在数据库端打开。正确关闭它们是您的责任,否则您将耗尽所有资源。
对象,数据结构或CachedRowSet是正确的返回对象。
我对反应性API比较陌生,很好奇当我们从web控制器返回流量时,幕后发生了什么。 根据spring-web文档 反应性返回值的处理如下: 与使用DeferreDreSult类似,适用于单值promise。例子包括单(反应器)或单(RxJava)。 因此,例外是两个API的行为应该与多值流(Flux)的行为应该与返回deferredresult的行为相似。 但是在返回延迟结果的API中,整个列表在浏
谁能给我解释一下,当我改变从find函数返回的值时,为什么原始数组中的值会改变呢?是不是有一个我缺失的概念?在执行代码之后,我将得到下面提到的输出。
问题内容: 有人可以提供goroutine返回的澄清值。从goroutine返回的值是否已存入抵押。 例如: 我们是否应该避免在go例程中避免返回值? 问题答案: 快速查看一下组装输出显示 该函数确实将其结果存储到堆栈中 因此,当从goroutine调用它时,它会将结果存储到堆栈中。但是,这是一个新的堆栈,当goroutine结束时,该堆栈会被破坏,因此无法获取返回值。 但是,无法检索这些结果。
我做了研究,发现应该这样做我不知道java对象像指针一样工作。我以为只有当两个对象相等时才会传递值。我甚至创建了一个简单的测试应用程序,它可以设置和获取一个对象的数量。再一次,我把这两个对象都等同起来。更改一个对象的元素似乎也会影响另一个对象。我不知道该怎么在谷歌上搜索这个。所以我才把整个故事都告诉你。我只得到与c编程有关的文档。我觉得我的底子都碎了。我现在才知道是如何工作的。我试着做 这不影响N
在 C 中,当一个应该返回对象的函数在没有 return 语句的情况下结束时会发生什么?会得到什么回报? 例如。
当我用空IN子句编写查询时,它引发了一个错误。例如,在()中选择id所在的城市 如果我在in子句中编写任何返回空resultset的子查询,那么它就不会引发错误。