国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Hashset 使用不當(dāng)引起的內(nèi)存泄漏

2019-11-11 05:02:57
字體:
供稿:網(wǎng)友

修改hashset中對(duì)象的屬性值,且屬性值是計(jì)算哈希值的字段,這時(shí)會(huì)引起內(nèi)存泄漏

即:當(dāng)一個(gè)對(duì)象被存儲(chǔ)進(jìn)HashSet集合中以后,就不能修改該對(duì)象的參與計(jì)算哈希值的屬性值了 ,否則對(duì)象修改后的哈希值與最初存儲(chǔ)進(jìn)HashSet集合中時(shí)的哈希值就不同了,在這種情況下,即使在contains方法使用該對(duì)象的當(dāng)前引用作為參數(shù)去HashSet集合中檢索對(duì)象,也將返回找不到對(duì)象的結(jié)果,這也會(huì)導(dǎo)致無法從HashSet集合中刪除當(dāng)前對(duì)象,造成內(nèi)存泄露。

舉例說明:

public class HashSetTest { public static void main(String[] args) { Set<Person> set = new HashSet<Person>(); Person p1 = new Person("唐僧", "pwd1", 25); Person p2 = new Person("孫悟空", "pwd2", 26); Person p3 = new Person("豬八戒", "pwd3", 27); set.add(p1); set.add(p2); set.add(p3); System.out.Word; private int age; public Person(String username, String password, int age) { this.username = username; this.password = password; this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((password == null) ? 0 : password.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (age != other.age) return false; if (password == null) { if (other.password != null) return false; } else if (!password.equals(other.password)) return false; if (username == null) { if (other.username != null) return false; } else if (!username.equals(other.username)) return false; return true; } @Override public String toString() { return this.username + "-->" + this.password + "-->" + this.age; }}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 张家口市| 峨眉山市| 梓潼县| 化隆| 盐源县| 社会| 密山市| 蒲江县| 军事| 陆川县| 湟源县| 长武县| 张家界市| 阳高县| 浪卡子县| 万盛区| 松江区| 宜君县| 怀远县| 噶尔县| 盱眙县| 琼海市| 神农架林区| 宝坻区| 德庆县| 屏东县| 宜兰县| 昭平县| 德保县| 泰安市| 石首市| 名山县| 富源县| 镇原县| 古交市| 长海县| 永登县| 天水市| 邛崃市| 乌拉特中旗| 松江区|