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

map扩容数据如何存放?

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

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

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只可能位处堆上,不可能东南边栈上。

发布于 2023-05-06 12:59:36
收藏
分享
海报
0 条评论
10
上一篇:google(chrome浏览器多窗口设置 Google Chrome浏览器怎么设置默认首页) 下一篇:小米音响怎么连接蓝牙(小米手机怎么连接小爱音响)
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码