墨陌之提示您:看後求收藏(第189章 ,/.,帶著遊戲賬號流浪,墨陌之,630看書),接著再看更方便。

請關閉瀏覽器的閱讀/暢讀/小說模式並且關閉廣告遮蔽過濾功能,避免出現內容無法顯示或者段落錯亂。

25、oo你遇到過哪些情況,f你遇到過哪些情況

oo:

1,outoforyerror異常

除了程式計數器外,虛擬機器記憶體的其他幾個執行時區域都有發生outoforyerror(oo)異常的可能。

java heap 溢位:

一般的異常資訊:javangoutoforyerror:java heap spacess。

java堆用於儲存物件例項,我們只要不斷的建立物件,並且保證gc roots到物件之間有可達路徑來避免垃圾回收機制清除這些物件,就會在物件數量達到最大堆容量限制後產生記憶體溢位異常。

出現這種異常,一般手段是先透過記憶體映像分析工具(如eclipse ory analyzer)對dup出來的堆轉存快照進行分析,重點是確認記憶體中的物件是否是必要的,先分清是因為記憶體洩漏(ory leak)還是記憶體溢位(ory over?ow)。

如果是記憶體洩漏,可進一步透過工具檢視洩漏物件到gcroots的引用鏈。於是就能找到洩漏物件是透過 怎樣的路徑與gc roots相關聯並導致垃圾收集器無法自動回收。

如果不存在洩漏,那就應該檢查虛擬機器的引數(-xx與-xs)的設定是否適當。

2,虛擬機器棧和本地方法棧溢位

如果執行緒請求的棧深度大於虛擬機器所允許的最大深度,將丟擲stackover?owerror異常。 如果虛擬機器在擴充套件棧時無法申請到足夠的記憶體空間,則丟擲outoforyerror異常

這裡需要注意當棧的大小越大可分配的執行緒數就越少。

3,執行時常量池溢位

異常資訊:javangoutoforyerror:pernspace

如果要向執行時常量池中新增內容,最簡單的做法就是使用strgtern這個native方法。該方法的 作用是:如果池中已經包含一個等於此strg的字串,則返回代表池中這個字串的strg物件;否 則,將此strg物件包含的字串新增到常量池中,並且返回此strg物件的引用。由於常量池分配在 方法區內,我們可以透過-xx:persize和-xx:axpersize限制方法區的大小,從而間接限制其中常量 池的容量。

4,方法區溢位

方法區用於存放css的相關資訊,如類名、訪問修飾符、常量池、欄位描述、方法描述等。也有可能 是方法區中儲存的css物件沒有被及時回收掉或者css資訊佔用的記憶體超過了我們配置。

異常資訊:javangoutoforyerror:pernspace

方法區溢位也是一種常見的記憶體溢位異常,一個類如果要被垃圾收集器回收,判定條件是很苛刻的。在 經常動態生成大量css的應用中,要特別注意這點。

f(堆疊溢位stackover?ow):

stackover?owerror 的定義:當應用程式遞迴太深而發生堆疊溢位時,丟擲該錯誤。

因為棧一般預設為1-2,一旦出現死迴圈或者是大量的遞迴呼叫,在不斷的壓棧過程中,造成棧容量 超過1而導致溢位。

棧溢位的原因:遞迴呼叫,大量迴圈或死迴圈,全域性變數是否過多,陣列、list、ap資料過大。

26、 簡述執行緒、程式、程序的基本概念。以及他們之間關係是什麼?

執行緒與程序相似,但執行緒是一個比程序更小的執行單位。一個程序在其執行的過程中可以產生多個線 程。與程序不同的是同類的多個執行緒共享同一塊記憶體空間和一組系統資源,所以系統在產生一個執行緒, 或是在各個執行緒之間作切換工作時,負擔要比程序小得多,也正因為如此,執行緒也被稱為輕量級程序。

程式是含有指令和資料的檔案,被儲存在磁碟或其他的資料儲存裝置中,也就是說程式是靜態的程式碼。

程序是程式的一次執行過程,是系統執行程式的基本單位,因此程序是動態的。系統執行一個程式即是 一個程序從建立,執行到消亡的過程。簡單來說,一個程序就是一個執行中的程式,它在計算機中一個 指令接著一個指令地執行著,同時,每個程序還佔有某些系統資源如 cpu 時間,記憶體空間,檔案,輸入輸出設

本章未完,點選下一頁繼續閱讀。

其他小說相關閱讀More+

終此一生

蘇其

林總家的小男友重生了

彼岸鮮枝

快穿:BE後我成了男主的白月光

夜沐歌