首页 > 教育培训

java可以获取内存地址吗 String存放在堆中还是栈中?

string存放在堆中还是栈中?

问题中的字符串应该是指java中的字符串。这里给出的答案是针对java的。

string是不可变的对象,在java中只能作为常量使用。java代码中所有显式的字符串,也就是直接写的字符串,比如abc,都是字符串对象。string本身作为一个对象必须在堆上,string中的contentchar[]值放在堆的一个特殊区域——常量区。

所以字符串本身是放在堆上的,根据垃圾收集的情况,可以分为新生代和旧时代。如果这个字符串对象是刚刚创建的,一般在堆的新生代,如果创建后已经存在了很长时间,很可能在堆的老年。注意,字符串中的字符串内容,即字符数组值,位于堆的常量区域。

java可以获取内存地址吗 String存放在堆中还是栈中?

如果你先有一个字符数组,比如char[]arr{a,b,c},然后调用stringn

java中的session中的数据存放在哪里,硬盘,还是,内存?

每次绘制时,服务器内存中都会有一个会话对象。当会话结束时,会话对象将被销毁。所以session的应用需要谨慎,避免过度消耗服务器。

对象字符串字符常量session

原文标题:java可以获取内存地址吗 String存放在堆中还是栈中?,如若转载,请注明出处:https://www.xinyige.net/tag/10970.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「鑫艺阁」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。