python全局變量是堆還是棧?
?內(nèi)存中的堆棧和數(shù)據(jù)結(jié)構(gòu)堆棧不是一個概念,可以說內(nèi)存中的堆棧是真實存在的物理區(qū),數(shù)據(jù)結(jié)構(gòu)中的堆棧是抽象的數(shù)據(jù)存儲結(jié)構(gòu)。
內(nèi)存空間在邏輯上分為三部分:代碼區(qū)、靜態(tài)數(shù)據(jù)區(qū)和動態(tài)數(shù)據(jù)區(qū),動態(tài)數(shù)據(jù)區(qū)又分為棧區(qū)和堆區(qū)。
代碼區(qū):存儲方法體的二進制代碼。高級調(diào)度(作業(yè)調(diào)度)、中級調(diào)度(內(nèi)存調(diào)度)、低級調(diào)度(進程調(diào)度)控制代碼區(qū)執(zhí)行代碼的切換。
靜態(tài)數(shù)據(jù)區(qū):存儲全局變量、靜態(tài)變量、常量,常量包括final修飾的常量和String常量。系統(tǒng)自動分配和回收。
棧區(qū):存儲運行方法的形參、局部變量、返回值。由系統(tǒng)自動分配和回收。
堆區(qū):new一個對象的引用或地址存儲在棧區(qū),指向該對象存儲在堆區(qū)中的真實數(shù)據(jù)。
簡而言之一句話:棧放變量,堆放對象