2016 - 2024

感恩一路有你

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

浏览量:2454 时间:2023-05-06 12:31:10 作者:采采

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

String 对象 常量 字符串

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。