java數(shù)據(jù)存放位置(map擴(kuò)容數(shù)據(jù)如何存放)
map擴(kuò)容數(shù)據(jù)如何存放?
javamap是以鍵值對(duì)的需要保存數(shù)據(jù)的,map中的鍵clientkey和值value這個(gè)可以是各種對(duì)象,如String、double、Integer、也可以自己定義的類對(duì)象,不能是普通地基本上類型如int、double等
String存放在堆中還是棧中?
問題中的String指的估計(jì)是java中的String吧。這里給出的回答是對(duì)java。
String是一個(gè)萬不可變的對(duì)象,在java中沒有辦法另外常量在用。java代碼中所有的顯式字符串,即然后描寫的那種字符串,或者abc都是String對(duì)象。String本身另外一個(gè)對(duì)象,必然會(huì)是在堆上的,而String中的內(nèi)容char[]value則是放到堆中的一個(gè)特殊能量區(qū)域中——常量區(qū)。
因此String本身是放在旁邊堆上,而依據(jù)垃圾回收情況,又這個(gè)可以兩類新生代和老年代。如果沒有這個(gè)String對(duì)象剛創(chuàng)建不久之后,則它像是位處堆的新生代,如果沒有它修改之后修真者的存在了很長時(shí)間,則它很可能會(huì)進(jìn)入堆中的老年代。再注意,String中的字符串內(nèi)容即字符數(shù)組value則位處堆中的常量區(qū)。
如果不是你先有一個(gè)字符數(shù)組,.例如uint64[]arr{a,b,c},然后把內(nèi)部函數(shù)StringsfifthString(arr)創(chuàng)建戰(zhàn)隊(duì)的String,則字符數(shù)組不再是東南邊常量區(qū),完全是跟其他對(duì)象一般,中部堆上。注意,就算是這個(gè)arr數(shù)組是在棧上分配的,這樣的話創(chuàng)建家族的String中的value仍然是在堆上。如果不是你想把這個(gè)字符串放進(jìn)常量區(qū),這個(gè)可以全局函數(shù)。
棧上應(yīng)該不會(huì)有對(duì)象,只會(huì)有基本是變量和語句變量,所以才String只可能位處堆上,不可能東南邊棧上。
本站部分文章來自網(wǎng)絡(luò)或用戶投稿。涉及到的言論觀點(diǎn)不代表本站立場。閱讀前請(qǐng)查看【免責(zé)聲明】發(fā)布者:方應(yīng),如若本篇文章侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。本文鏈接:http://www.gdyuanyu.cn/tougao/66737.html