日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

浅谈List保存的数据是引用数据类型的地址

發布時間:2025/3/21 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈List保存的数据是引用数据类型的地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

淺談List保存的數據是引用數據類型的地址

今天一個初學javaweb的朋友問我一個bug,經過和別人 討論分析了解到List對象細節上的一些問題,我將代碼重新簡化構造了一下做成了一個例子。上代碼:

?

得到的結果:

?

咋一看,無非就是第一個循環沒有循環創建test對象,第二個循環創建了test對象。

按照邏輯test在循環數據都進行了更新,然后再加入到list對象的,若不考慮list引用數據類型地址問題,第一個print和第二個print會都會輸出[0,1,2,3,4]。

事實上,這和list引用數據類型地址有關,由于list存放的是一個對象的地址,而不是這個對象的值,所以當對象更新之后,之前加入list對象的test的值會因為test的對象更新,但對象地址沒有發生變化,所以當list遍歷的時候,由于是存放的地址,我們會取到同一個test對象,而對象的值也更新成了最后一個循環所賦的值。

簡單的說:第一個:list里面存的是 【地址4,地址4,地址4,地址4】list并不是存的 【值1,值2,值3,值4.....】

? ? ? ? ? ? ? ? ? 第二個:list里面存的是 【地址1,地址2,地址3,地址4】而我們往往需要的是結果二,而不是結果一。

總結

以上是生活随笔為你收集整理的浅谈List保存的数据是引用数据类型的地址的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。