java可以獲取內(nèi)存地址嗎 String存放在堆中還是棧中?
String存放在堆中還是棧中?問題中的字符串應該是指java中的字符串。這里給出的答案是針對java的。String是不可變的對象,在java中只能作為常量使用。java代碼中所有顯式的字符串,也就
String存放在堆中還是棧中?
問題中的字符串應該是指java中的字符串。這里給出的答案是針對java的。
String是不可變的對象,在java中只能作為常量使用。java代碼中所有顯式的字符串,也就是直接寫的字符串,比如abc,都是字符串對象。String本身作為一個對象必須在堆上,String中的content char[]值放在堆的一個特殊區(qū)域——常量區(qū)。
所以字符串本身是放在堆上的,根據(jù)垃圾收集的情況,可以分為新生代和舊時代。如果這個字符串對象是剛剛創(chuàng)建的,一般在堆的新生代,如果創(chuàng)建后已經(jīng)存在了很長時間,很可能在堆的老年。注意,字符串中的字符串內(nèi)容,即字符數(shù)組值,位于堆的常量區(qū)域。
如果你先有一個字符數(shù)組,比如char[] arr {a,b,c},然后調(diào)用String N
java中的session中的數(shù)據(jù)存放在哪里,硬盤,還是,內(nèi)存?
每次繪制時,服務器內(nèi)存中都會有一個會話對象。當會話結(jié)束時,會話對象將被銷毀。所以session的應用需要謹慎,避免過度消耗服務器。