❶ java static變數存儲在什麼地方呢,別說什麼靜態存儲池的,我需要實際和具體的回答,是內存還是緩存
java運行時所有對象都只在JVM包裝的內存中,JVM不是跨平台的,它由系統軟體載入到內存中,很顯然,java的對象全都在內存中。
不管是靜態的不靜態的都一樣,只不過JVM自己做了內存管理,將靜態的數據存放的地區更加共用一點,非靜態的對象只在一個地方存一個殼子(類,如果類已經載入了的,沒有載入的類連殼子都木有),需要創建對象的時候才繼續向操作系統申請內存資源。
java的緩存機制,通常是指『應用性緩存』,就是在實際應用的時候,用程序實現類似cache的功能的模式,如:文件流讀寫就是在直接跟硬碟交互的內存區域加一個限制讓數據按照一定的規律進行讀寫這樣可以實時檢查通道是否異常,根據狀況調節通道大小,這樣做在大文件的持久化過程中是很有用的,但是小文件非緩存讀寫更有優勢,因為它發生通道阻塞的可能性相當小了。
❷ c語言中static定義的變數 存儲在OS內存的什麼區域
windows下,進程虛擬地址4G,0~2G屬於進程私有,
進程私有地址布局是:
兩端各有64k空間,以防指針值為空,
地址從低往高是代碼段、數據段、棧、堆,
static變數在數據段,具體是_DATA段,該段數據都已初始化
❸ 靜態數據與動態數據的區別在計算機內存中的存儲方式有何不同各有什麼缺點
一般認為在c中分為這幾個存儲區
1棧 - 有編譯器自動分配釋放
2堆 - 一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收
3全局區(靜態區),全局變數和靜態變數的存儲是放在一塊的,初始化的全局變數和靜態變數在一塊區域,未初始化的全局變數和未初始化的靜態變數在相鄰的另一塊區域。程序結束釋放
4文字常量區--專門放常量的地方,比如字元串常量。 - 程序結束釋放
5代碼區 存放程序代碼
在函數體中定義的變數通常是在棧上,用malloc, calloc, realloc等分配內存的函數分
配得到的就是在堆上。在所有函數體外定義的是全局量,加了static修飾符後不管在哪
里都存放在全局區(靜態區),在所有函數體外定義的static變數表示在該文件中有效,
不能extern到別的文件用,在函數體內定義的static表示只在該函數體內有效。另外,
函數中的"adgfdf"這樣的字元串存放在常量區。
=====================================================================
針對你的題目,動態數據存放在堆區或棧區 而靜態數據存放在全局區(靜態區)
特點:動態數據 由系統自動分配內存或由程序員自主分配
系統自動分配的存放在棧區 一般包括局部變數 函數參數等等
程序員自主分配的存放在堆區 又malloc new等實現
它的生存期是變數的作用域 不是整個程序
靜態數據 存放在靜態區 和全局變數一個區 它的生存期是整個程序
❹ 靜態變數存儲在哪個區
對於一個進程的內存空間而言,可以在邏輯上分成3個部份:代碼區,靜態數據區和動態數據區。
動態數據區一般就是「堆棧」。 棧是一種線性結構,堆是一種鏈式結構。進程的每個線程都有私有的「棧」。
全局變數和靜態變數分配在靜態數據區(全局區),本地變數分配在動態數據區,即堆棧中。程序通過堆棧的基地址和偏移量來訪問本地變數。
❺ static變數存儲在哪裡
該變數在全局數據區分配內存;
未經初始化的靜態全局變數會被程序自動初始化為0(自動變數的值是隨機的,除非它被顯式初始化);
靜態全局變數在聲明它的整個文件都是可見的,而在文件之外是不可見的;
靜態變數都在全局數據區分配內存,包括後面將要提到的靜態局部變數。對於一個完整的程序,在內存中的
代碼區,全局數據區,堆區,棧區
一般程序的由new產生的動態數據存放在堆區,函數內部的自動變數存放在棧區。自動變數一般會隨著函數的退出而釋放空間,靜態數據(即使是函數內部的靜態局部變數)也存放在全局數據區。全局數據區的數據並不會因為函數的退出而釋放空間。細心的讀者可能會發現,Example 1中的代碼中將
static int n; //定義靜態全局變數
改為
int n; //定義全局變數
程序照樣正常運行。
的確,定義全局變數就可以實現變數在文件中的共享,但定義靜態全局變數還有以下好處:
靜態全局變數不能被其它文件所用;
其它文件中可以定義相同名字的變數,不會發生沖突;
❻ 什麼是靜態存儲區和動態存儲區啊
1. 全局變數和靜態數據放在靜態存儲區,生命周期為從申請到程序退出。因此局部變數若定義為static,則存儲在靜態存儲區,否則存儲在函數的棧內,生命周期為本函數內。
2 動態存儲放自動變數和局部變數
❼ c語言中的靜態存儲變數是存儲在哪裡的,一般什麼時候用
在棧中,這個是系統自己完成的,例如int a=4,而堆是可以由程序員進行隨時申請的這里的棧類似於數據結構中的棧,而堆類似與數據結構中的鏈表。
❽ 靜態static變數在不同的實例中地址是否一樣,存儲在什麼區域
static變數存儲在程序的靜態數據區中;不同實例中,static變數的地址不會變。