1.非靜態(tài)成員變量
成都創(chuàng)新互聯(lián)專(zhuān)注于永城企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。永城網(wǎng)站建設(shè)公司,為永城等地區(qū)提供建站服務(wù)。全流程按需策劃,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
當(dāng)成員變量為非靜態(tài)成員變量且對(duì)當(dāng)前類(lèi)進(jìn)行實(shí)例化時(shí),將會(huì)產(chǎn)生死循環(huán)
例子:
public class ConstructorCls { private ConstructorCls obj=new ConstructorCls(); }
public class TestC { public static void main(String[] args) { ConstructorCls c =new ConstructorCls(); } }
結(jié)果:
Exception in thread "main" java.lang.StackOverflowError at com.ConstructorCls.<init>(ConstructorCls.java:7) at com.ConstructorCls.<init>(ConstructorCls.java:7) at com.ConstructorCls.<init>(ConstructorCls.java:7)
分析:當(dāng)new ConstrutorCls() 會(huì)對(duì)ConstrutorCls進(jìn)行實(shí)例 化,后然對(duì)這個(gè)類(lèi)的成員obj進(jìn)行初始化,obj又是對(duì)自已所在類(lèi)進(jìn)行實(shí)列化,這一樣一直下去,直到StackOverflowError
2.靜態(tài)成員變量
靜態(tài)成員變量是屬于類(lèi)的,不會(huì)出現(xiàn)死循環(huán)
例如:
public class ConstructorCls { private static ConstructorCls obj=new ConstructorCls(); }
public class TestC { public static void main(String[] args) { ConstructorCls c =new ConstructorCls(); } }
分析:當(dāng)new ConstructorCls()時(shí),首先將ConstructorCls加截到JVM中,在加載時(shí)對(duì)該類(lèi)的靜態(tài)成員進(jìn)行初始化(僅加載時(shí)初始化一次),初始化obj對(duì)像,new 一個(gè)ConstructorCls, 這里的一個(gè)關(guān)鍵點(diǎn) 是這個(gè)靜態(tài)成員是屬于類(lèi)的,并不屬于某一個(gè)實(shí)例對(duì)像,所以不會(huì)產(chǎn)生死循環(huán)。
以上就是小編為大家?guī)?lái)的Java非靜態(tài)成員變量之死循環(huán)(詳解)的全部?jī)?nèi)容了,希望大家喜歡哦~
如果大家想了解更多游戲活動(dòng)與游戲攻略,請(qǐng)持續(xù)關(guān)注本站,本站小編將在第一時(shí)間為大家?guī)?lái)最好看、最好玩、最新鮮的游戲資訊。更多精彩內(nèi)容,盡在jb51游戲頻道!
網(wǎng)頁(yè)名稱:Java非靜態(tài)成員變量之死循環(huán)(詳解)
文章位置:http://aaarwkj.com/article48/jjgdhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、軟件開(kāi)發(fā)、網(wǎng)站排名、品牌網(wǎng)站建設(shè)、商城網(wǎng)站、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)