卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java棧的使用 請(qǐng)高手詳細(xì)的解答一下JAVA的堆,棧,方法區(qū),謝謝?

請(qǐng)高手詳細(xì)的解答一下JAVA的堆,棧,方法區(qū),謝謝?方法區(qū)(非堆):是所有線程共享的內(nèi)存區(qū),用于存儲(chǔ)類信息、常量、靜態(tài)變量、編譯器編譯的代碼以及虛擬機(jī)加載的其他數(shù)據(jù)。Java堆:它是虛擬機(jī)管理的最大內(nèi)

請(qǐng)高手詳細(xì)的解答一下JAVA的堆,棧,方法區(qū),謝謝?

方法區(qū)(非堆):是所有線程共享的內(nèi)存區(qū),用于存儲(chǔ)類信息、常量、靜態(tài)變量、編譯器編譯的代碼以及虛擬機(jī)加載的其他數(shù)據(jù)。Java堆:它是虛擬機(jī)管理的最大內(nèi)存區(qū)域,也是所有線程共享的內(nèi)存區(qū)域。它是在虛擬機(jī)啟動(dòng)時(shí)創(chuàng)建的。這個(gè)內(nèi)存區(qū)域的唯一用途是存儲(chǔ)對(duì)象實(shí)例,幾乎所有的對(duì)象實(shí)例都分配內(nèi)存。Java堆是垃圾收集器管理的主要領(lǐng)域。Java虛擬機(jī)棧:線程是私有的,其生命周期與線程相同。在執(zhí)行每個(gè)方法時(shí),將同時(shí)創(chuàng)建一個(gè)堆棧幀來(lái)存儲(chǔ)局部變量表、操作數(shù)堆棧、動(dòng)態(tài)鏈接和方法出口等信息。每個(gè)方法都會(huì)被調(diào)用,直到執(zhí)行完成,這與虛擬機(jī)中從堆棧到堆棧輸出進(jìn)程的堆棧幀相對(duì)應(yīng)。

String存放在堆中還是棧中?

有問(wèn)題的字符串應(yīng)該是指Java中的字符串。這里的答案是Java。

字符串是一個(gè)不可變的對(duì)象,在Java中只能用作常量。Java代碼中的所有顯式字符串,即直接編寫的字符串,如“ABC”,都是字符串對(duì)象。字符串本身作為一個(gè)對(duì)象,必須在堆上,而字符串的內(nèi)容char[]value則放在堆常量區(qū)域的一個(gè)特殊區(qū)域中。

所以字符串本身就是放在堆上的,根據(jù)垃圾收集的情況,它可以分為新一代和老一代。如果字符串對(duì)象剛剛創(chuàng)建,它通常位于新一代堆中。如果已經(jīng)創(chuàng)建了很長(zhǎng)時(shí)間,很可能是在舊堆時(shí)代。請(qǐng)注意,字符串中的字符串內(nèi)容(即字符數(shù)組值)位于堆的常量區(qū)域中。如果首先有一個(gè)字符數(shù)組,例如char[]arr{“a”、“b”、“c”},然后調(diào)用String s=new String(arr)來(lái)創(chuàng)建該字符串,那么字符數(shù)組就不再位于常量區(qū)域,而是與堆上的其他對(duì)象類似。請(qǐng)注意,即使在堆棧上分配了ARR數(shù)組,以這種方式創(chuàng)建的字符串中的值仍在堆上。如果你想把這個(gè)字符串放在常量區(qū)域,你可以調(diào)用String.實(shí)習(xí)生.

堆棧上沒有對(duì)象,只有基本變量和引用變量,因此字符串只能在堆上,而不能在堆棧上。