欢迎访问汉海网,带你进入知识的海洋!

java数据存放位置(map扩容数据如何存放)

方应 分享 时间: 加入收藏 我要投稿 点赞

map扩容数据如何存放?

javamap是以键值对的需要保存数据的,map中的键clientkey和值value这个可以是各种对象,如String、double、Integer、也可以自己定义的类对象,不能是普通地基本上类型如int、double等

String存放在堆中还是栈中?

问题中的String指的估计是java中的String吧。这里给出的回答是对java。

String是一个万不可变的对象,在java中没有办法另外常量在用。java代码中所有的显式字符串,即然后描写的那种字符串,或者abc都是String对象。String本身另外一个对象,必然会是在堆上的,而String中的内容char[]value则是放到堆中的一个特殊能量区域中——常量区。

因此String本身是放在旁边堆上,而依据垃圾回收情况,又这个可以两类新生代和老年代。如果没有这个String对象刚创建不久之后,则它像是位处堆的新生代,如果没有它修改之后修真者的存在了很长时间,则它很可能会进入堆中的老年代。再注意,String中的字符串内容即字符数组value则位处堆中的常量区。

如果不是你先有一个字符数组,.例如uint64[]arr{a,b,c},然后把内部函数StringsfifthString(arr)创建战队的String,则字符数组不再是东南边常量区,完全是跟其他对象一般,中部堆上。注意,就算是这个arr数组是在栈上分配的,这样的话创建家族的String中的value仍然是在堆上。如果不是你想把这个字符串放进常量区,这个可以全局函数。

栈上应该不会有对象,只会有基本是变量和语句变量,所以才String只可能位处堆上,不可能东南边栈上。

221381
领取福利

微信扫码领取福利

java数据存放位置(map扩容数据如何存放)

微信扫码分享