基本數(shù)據(jù)類型杭朱、局部變量都是存放在棧內(nèi)存中的,用完就消失吹散。
new創(chuàng)建的實例化對象及數(shù)組弧械,是存放在堆內(nèi)存中的,用完之后靠垃圾回收機制不定期自動消除空民。
棧和堆的特點
棧:
函數(shù)中定義的基本類型變量刃唐,對象的引用變量都在函數(shù)的棧內(nèi)存中分配。
棧內(nèi)存特點界轩,數(shù)數(shù)據(jù)一執(zhí)行完畢画饥,變量會立即釋放,節(jié)約內(nèi)存空間浊猾。
棧內(nèi)存中的數(shù)據(jù)抖甘,沒有默認初始化值,需要手動設(shè)置葫慎。
堆:
堆內(nèi)存用來存放new創(chuàng)建的對象和數(shù)組衔彻。
堆內(nèi)存中所有的實體都有內(nèi)存地址值薇宠。
堆內(nèi)存中的實體是用來封裝數(shù)據(jù)的,這些數(shù)據(jù)都有默認初始化值艰额。
堆內(nèi)存中的實體不再被指向時澄港,JVM啟動垃圾回收機制,自動清除柄沮,這也是JAVA優(yōu)于C++的表現(xiàn)之一(C++中需要程序員手動清除)
什么是局部變量:定義在函數(shù)中的變量回梧、定義在函數(shù)中的參數(shù)上的變量、定義在for循環(huán)內(nèi)部的變量