gpt4 book ai didi

java - hashcode() 会为连接返回相同的哈希值吗?

转载 作者:行者123 更新时间:2023-12-02 01:39:00 25 4
gpt4 key购买 nike

我试图确保我从 HikariCP 池中获取相同的连接,并想使用 hashcode() 来测试它们是否相同。我得到不同的哈希值,这是否意味着我一定有不同的连接?

    @Test
public void testDBConnectionPool() throws Exception {
logger.info("GlobalProps are the same. Instances-{}, {}, {}!", props.hashCode(), props1.hashCode(),
GlobalProps.getInstance().hashCode());
Connection con1 = DBConnectionPool.getInstance().getConnection();
if (con1 != null) {
PreparedStatement ps = con1.prepareStatement("SELECT count(*) FROM ALERT");

ResultSet rs = ps.executeQuery();
while (rs.next()) {
logger.info("Total Record Count: {} - Alert table", rs.getObject(1));
}
}

con1.close();
logger.info("Returned connection {} to the pool", con1.hashCode());

con1 = DBConnectionPool.getInstance().getConnection();
if (con1 != null) {
PreparedStatement ps = con1.prepareStatement("SELECT count(*) FROM ALERT");

ResultSet rs = ps.executeQuery();
while (rs.next()) {
logger.info("Total Record Count: {} - Alert table", rs.getObject(1));
}
}
con1.close();
logger.info("Returned connection {} to the pool", con1.hashCode());
}

期望不同的哈希值,但收到相同的哈希值。

最佳答案

does this mean I necessarily have different connections?

必然?不会。从一般意义上来说,同一个对象在不同时间有可能具有不同的哈希码。这取决于其类的 hashCode() 实现。但尽管如此,不同的哈希码很可能是不同对象的标志,并且在大多数情况下,我会认为提供其实例哈希码更改可能性的类是有缺陷的。

此外,如果同一个对象确实在不同时间报告了不同的哈希码,那么几乎肯定会传达有关该对象状态的信息,很可能意味着它在逻辑上应该被视为不同的对象。

但是我不太知道该怎么做:

Expected different hashes, but received the same hash.

这似乎与您之前的评论相矛盾,所以我只想说,具有相同的哈希,在一般意义上,表明两个对象是相同的,无论是在实例身份意义或值(value)身份意义。

关于java - hashcode() 会为连接返回相同的哈希值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57499821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com