欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java中hashCode()方法如何使用

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Java中 hashCode() 方法如何使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們提供的服務(wù)有:網(wǎng)站制作、做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、北京ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的北京網(wǎng)站制作公司

什么是 Hash

Hash 中文叫做哈希也可以叫做散列,使用 Hash 的算法生成字符串或者數(shù)字的方法就可以稱為 Hash 算法,或者散列算法。

如果還不太明白的話,考慮下 MD5。MD5 就是典型的哈希算法,通過 MD5 算法,不管你是輸入字符串,圖片,二進(jìn)制文件,都能獲得一個(gè)字符串。

獲得這個(gè)字符串的算法就是 Hash 算法。

為什么要 Hash

我們?cè)谶@里不打算討論復(fù)雜的 Hash 算法或者 Hash 算法怎么去計(jì)算的。因?yàn)檫@樣的話,你可能需要很長(zhǎng)的時(shí)間才能搞明白到底怎么算出來的。

使用 Hash 算法的目的就是為了將獲得的數(shù)據(jù)摘要信息盡量分散,并且盡量的不重復(fù),同時(shí)還需要保證相同數(shù)據(jù)的 Hash 結(jié)果是相同不能變化的。

不管你將相同數(shù)據(jù) Hash 多少遍,只要數(shù)據(jù)相同,那么 Hash 必須是相同的。

哈希碰撞

在現(xiàn)實(shí)生活中,不同數(shù)據(jù)的 Hash 結(jié)果可能是相同的。

考察下面的代碼:

        logger.debug("HashCode AaAaAa - {}", "AaAaAa".hashCode());logger.debug("HashCode BBAaBB - {}", "BBAaBB".hashCode());

上面代碼輸出的結(jié)果是相同的,這種情況就是哈希碰撞( Hash collision)。

Java中 hashCode() 方法如何使用

很遺憾,這種哈希碰撞在現(xiàn)實(shí)中是不能避免的。

Java中 hashCode() 方法如何使用

常用的哈希算法

常用的 Hash 算法有下面的一些算法。

MD5 的算法已經(jīng)不是安全的 Hash 算法了,在密碼學(xué)和開發(fā)中,已經(jīng)逐步推薦使用 SHA-256 算法了。

算法輸出長(zhǎng)度(位)輸出長(zhǎng)度(字節(jié))
MD5128 bits16 bytes
SHA-1160 bits20 bytes
RipeMD-160160 bits20 bytes
SHA-256256 bits32 bytes
SHA-512512 bits64 bytes

根據(jù)碰撞概率,哈希算法的輸出長(zhǎng)度越長(zhǎng),就越難產(chǎn)生碰撞,也就越安全。

Java 的 hashCode()

Java 中的 hashCode() 方法返回的數(shù)據(jù)類型是 int 類型。

下面以 String 對(duì)象的 hashCode 為例,官方解釋中有關(guān) String 對(duì)象 Hash 算法計(jì)算方式是:

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

針對(duì)輸入字符串是不是 UTF16,將會(huì)有不同的計(jì)算方法。

Java中 hashCode() 方法如何使用

IntelliJ IDEA 重寫 Hash 算法

如果你不想使用 Java Object 對(duì)象中的 Hash 算法,你可以在你的對(duì)象中重寫 Hash 算法。

在 IntelliJ IDEA 輸入快捷鍵 Alt+Insert,這個(gè)將會(huì)彈出快速生成方法的選擇項(xiàng)。

Java中 hashCode() 方法如何使用

隨后將會(huì)提示你選用何種方法來創(chuàng)建 hashCode() 方法。你可以選擇使用 JDK 自帶的,你也可以選擇使用 Apache Commons-lang 的方法來重寫方法。當(dāng)然,你也可以使用其他的一些方法來寫,不管哪個(gè)方法來寫,原理都是相通的。

Java中 hashCode() 方法如何使用

選擇變量,在完成上面的方法選擇后,將會(huì)提示你選擇變量。

將需要?jiǎng)?chuàng)建的變量選擇,然后下一步。

Java中 hashCode() 方法如何使用

同時(shí)還需要你選擇非空的字段,你可以默認(rèn)選擇也可以不選擇。

Java中 hashCode() 方法如何使用

如下,你可以看到使用 JDK 生成的默認(rèn)的 hashCode 方法。

    @Overridepublic int hashCode() {return Objects.hash(title, topic_id, raw, category, target_recipients, archetype, created_at);
    }

Java中 hashCode() 方法如何使用

如果你根據(jù)使用的是 Apache 的 Commons 生成的話,結(jié)果有所不同。

可以在 IDE 中自行研究下。

需要注意的是,在 hashCode 中,你可能會(huì)看到數(shù)字 17,31,37。

其實(shí)這些數(shù)字就是素?cái)?shù)了,在 Java 面試的時(shí)候可能會(huì)有一道題目就是找出 100 以內(nèi)的素?cái)?shù)。

因?yàn)?Hash 算法在很多時(shí)候其實(shí)也可以用于密碼學(xué)中,密碼學(xué)的很多基礎(chǔ)研究就是對(duì)素?cái)?shù)的研究。

網(wǎng)絡(luò)中廣泛使用的RSA算法,就是基于素?cái)?shù)性質(zhì)的重要應(yīng)用。

因此在 hashCode 的方法中,你能看到上面的數(shù)字,這個(gè)就是有關(guān)素?cái)?shù)算法的實(shí)際應(yīng)用之一。因?yàn)樯婕暗胶芏嗝艽a學(xué)的知識(shí),我們這里就不實(shí)際展開了。

上述就是小編為大家分享的Java中 hashCode() 方法如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:Java中hashCode()方法如何使用
網(wǎng)址分享:http://www.aaarwkj.com/article6/gjciig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作品牌網(wǎng)站建設(shè)、ChatGPT、云服務(wù)器、Google、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
黑丝美女国产精品久久久| 欧美黄片精品在线观看| 日韩大片一区二区三区在线观看| 欧美日韩一区二区三区大片| 亚洲中文字幕在线乱码| 亚洲黄色录像特级生活片| 人妻大乳一区二区三区| 欧美一区二区日本国产激情| 青草免费在线播放视频| 久久亚洲精品国产精品黑人| 亚洲中文波霸中文字幕| 色播五月麻豆激情综合网| 亚洲香蕉一区二区免费| 日本a亚洲中文字幕永远| 免费看的日韩av毛片| 亚洲第一毛片免费在线观看| 日韩 高清 一区二区| 91九色国产原创在线观看| 欧美精品国产亚洲另类| 熟妇激情欧美在线播放视频| 国产激情福利一区二区| 国产一区二区三区在线视频播放| 亚洲一区二区在线视频在线观看 | 在线观看国产自拍精品| 91久久精品中文字幕| 中文日本强暴人妻另类视频| 视频久久这里只有精品| 国产精品自偷自偷自偷| 日韩av一区二区国产| 国产原创av剧情愿望成真| 欧美熟妇在线视频你懂的| 亚洲天堂网免费在线看| 欧美日韩另类激情免费| 蜜桃网站视频免费观看| 粉嫩一区二区三区在线| 欧美日韩亚洲中文综合网| 欧美日韩国产特级性生活| 国产成人三级在线影院| 日本特黄特黄录像在线| 男人喜欢看的免费视频| 日韩精品一区中文字幕在线|