課程
/后端開發
/Java
/JAVA遇見HTML——Servlet篇
額。。。。老師好像講錯了,老師說:“new出來的兩個對象hashcode一定不相同”,可是,new出兩個的String類型的相同字符串,它們的hashcode是相同的呀。。。。。。
2015-12-21
源自:JAVA遇見HTML——Servlet篇 2-9
正在回答
你們聊到哪去了。。。 new出兩個的String類型的相同字符串,它們的hashcode是相同的原因是,String.class中重寫了hashcode方法啊。。。。
黑夜_K
第二點呢...每個人的知識都有漏洞吧,我不知道“字符串本身就是hashcode”,java應用hash算法是為了方便檢索內存里的東西。這個暫且不說。你提的問題“兩個相同值得String類型對象得到的hashcode是一樣得”。這個呢,下面截圖有,第一張是jdk的官方文檔,雖然是漢化版的。我所說的一樣是指字符串對象(s1,s2)引用調用hashcode()方法返回的值是一樣的。而第一張截圖上說了,返回的是此對象的哈希碼值。自然就是String對象的哈希碼值,也即是堆中存儲的String對象的哈希碼值。不是你說的String值得哈希碼。夠清楚的吧...第三點,慎用網絡用語:“呵呵”,“逗逼”,對陌生人用,這就是罵人的話,而不是調侃。還有什么疑問歡迎提出...
再看看這個
沉寂的蝸牛 提問者
mjka5632 回復 沉寂的蝸牛 提問者
如果是String類型的 ?要通過調用字節數組 ? ? 顯示 字符串的hashcode?
大哥 ?我還是沒理解 ?你最后的那句話 ?“兩個相同值得String類型對象得到的hashcode是一樣得.” ?就話的hashcode ?指的是那種hashcode ?;你這就話有兩種hashcode ? ?第一種是對象指向的對象的值的地址的hashcode ? ;第二種是對象指的hashcode。 ?你以前說的hashcode是第一種 ?我也知道String是類 ?但String也是基本數據類型 ? 字符串本身就是hashcode ?
可是,new出兩個的String類型的相同字符串,它們的hashcode是相同的呀。。。。。。 ? ?這只是你的理解而已 ?老師并沒有說這就話 ?如果老師說這句話 那它重寫hashcode() ?就行 ?干嘛重寫equals()判斷對象的值是否相同
寫個hashcode()判斷他們引用的地址就行了呀!對不對 ? ?別一天天的說 源代碼源代碼 你看了就真的以為你把源代碼理解了? ?還是好好想想老師為社么這樣寫
小小徐life 回復 沉寂的蝸牛 提問者
老師的意思是 對象的值的哈希碼相同 ?屬性的值 ?值 ?值呀 ?哥哥呀 字符串本來就是用哈希碼表示的的呀 ? ? 老師前面說的第一個哈希碼表示的是 對象的引用地址呀 ? 第二個哈希碼說的是對象引用地址里面對應的屬性(字符串)的哈希碼 ?你確定你真的了解引用傳遞么 ???臻g里面放的是對象 ?堆空間里面才是屬性 ???臻g里的哈希碼只是表示地址 ?而堆空間的哈希碼才是表示真正的值 ?就算你看再多的源代碼 理解能力差 ?又有什么用呢?
還是自己來回答吧:查了下資料,new出來的兩個對象正常情況是不相同的,但如果超出了int類型的范圍,那么就至少有兩相同。那么問題來了,new兩個相同的字符串對象為什么他們的hashcode相同呢,這要看String類型的源碼了,源碼的意思基本上就是比較String對象的value值,值相同就相同?;剡^頭去,不是說new出來的兩個對象哈希值不相同嗎,額......感覺都是在扯淡,沒見官方文檔說new出來的兩個對象hashcode就一定相等啊。
后面的一種,不信你可以試試。。。
小小徐life
沉寂的蝸牛 提問者 回復 小小徐life
String s="abc"這種還是String s=new String("abc")
舉報
本門課程在JSP課程的基礎上,深入介紹Servlet的基礎知識
1 回答老師講錯了吧?
2 回答模態框內沒有內容,
6 回答老師,如何往MySQL中插入text和longtext類型的內容??
2 回答不顯示內容
1 回答什么時候更新完啊 ,這個課程 講的太好了 啊
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-08-15
你們聊到哪去了。。。 new出兩個的String類型的相同字符串,它們的hashcode是相同的原因是,String.class中重寫了hashcode方法啊。。。。
2016-05-31
第二點呢...每個人的知識都有漏洞吧,我不知道“字符串本身就是hashcode”,java應用hash算法是為了方便檢索內存里的東西。這個暫且不說。你提的問題“兩個相同值得String類型對象得到的hashcode是一樣得”。這個呢,下面截圖有,第一張是jdk的官方文檔,雖然是漢化版的。我所說的一樣是指字符串對象(s1,s2)引用調用hashcode()方法返回的值是一樣的。而第一張截圖上說了,返回的是此對象的哈希碼值。自然就是String對象的哈希碼值,也即是堆中存儲的String對象的哈希碼值。不是你說的String值得哈希碼。夠清楚的吧...第三點,慎用網絡用語:“呵呵”,“逗逼”,對陌生人用,這就是罵人的話,而不是調侃。還有什么疑問歡迎提出...
2016-05-30
2016-05-30
如果是String類型的 ?要通過調用字節數組 ? ? 顯示 字符串的hashcode?
2016-05-30
2016-05-29
可是,new出兩個的String類型的相同字符串,它們的hashcode是相同的呀。。。。。。 ? ?這只是你的理解而已 ?老師并沒有說這就話 ?如果老師說這句話 那它重寫hashcode() ?就行 ?干嘛重寫equals()判斷對象的值是否相同
寫個hashcode()判斷他們引用的地址就行了呀!對不對 ? ?別一天天的說 源代碼源代碼 你看了就真的以為你把源代碼理解了? ?還是好好想想老師為社么這樣寫
2016-05-29
老師的意思是 對象的值的哈希碼相同 ?屬性的值 ?值 ?值呀 ?哥哥呀 字符串本來就是用哈希碼表示的的呀 ? ? 老師前面說的第一個哈希碼表示的是 對象的引用地址呀 ? 第二個哈希碼說的是對象引用地址里面對應的屬性(字符串)的哈希碼 ?你確定你真的了解引用傳遞么 ???臻g里面放的是對象 ?堆空間里面才是屬性 ???臻g里的哈希碼只是表示地址 ?而堆空間的哈希碼才是表示真正的值 ?就算你看再多的源代碼 理解能力差 ?又有什么用呢?
2016-05-29
還是自己來回答吧:查了下資料,new出來的兩個對象正常情況是不相同的,但如果超出了int類型的范圍,那么就至少有兩相同。那么問題來了,new兩個相同的字符串對象為什么他們的hashcode相同呢,這要看String類型的源碼了,源碼的意思基本上就是比較String對象的value值,值相同就相同?;剡^頭去,不是說new出來的兩個對象哈希值不相同嗎,額......感覺都是在扯淡,沒見官方文檔說new出來的兩個對象hashcode就一定相等啊。
2015-12-23
后面的一種,不信你可以試試。。。
2015-12-21
String s="abc"這種還是String s=new String("abc")