當前位置:科普知識站>IT科技>

java|core

IT科技 閱讀(2.81W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java core是什麼,讓我們一起了解一下:

core是unix系統的核心。當你的程式出現記憶體越界的時候,作業系統會中止你的程序,並將當前記憶體狀態倒出到core檔案中,以便進一步分析,Core模組主要包含Spring框架基本的核心工具類。

core在Java程式執行時,有時會產生JavaCore及HeapDump檔案,它一般發生於Java程式遇到致命問題的情況下。

有時致命問題發生後,Java應用不會死掉,還能繼續執行,但有時致命問題發生,Java程序會死掉。為了能夠保留Java應用發生致命錯誤前的執行狀態,JVM在死掉前產生兩個檔案,分別為JavaCore及HeapDump檔案。

java core

這兩者有何區別?

JavaCore是關於CPU的,而HeapDump檔案是關於記憶體的。

JavaCore檔案主要儲存的是Java應用各執行緒在某一時刻的執行的位置,即JVM執行到哪一個類、哪一個方法、哪一個行上。它是一個文字檔案,開啟後可以看到每一個執行緒的執行棧,以stack trace的顯示。通過對JavaCore檔案的分析可以得到應用是否“卡”在某一點上,即在某一點執行的時間太長,例如資料庫查詢,長期得不到響應,最終導致系統崩潰等情況。

HeapDump檔案是一個二進位制檔案,它儲存了某一時刻JVM堆中物件使用情況,這種檔案需要相應的工具進行分析,如IBM Heap Analyzer這類工具。這類檔案最重要的作用就是分析系統中是否存在記憶體溢位的情況。

實戰操作:Java Core之位元組碼與類建立過程程式碼如下。

package io.renren.modules.manyThread; class Son extends  Father{     static {        System.out.println("Son的靜態程式碼塊");    }     {        System.out.println("Son的普通程式碼塊");    }     public Son(){        System.out.println("Son的構造方法");    }} class Father{    static {        System.out.println("Father的靜態程式碼塊");    }     {        System.out.println("Father的普通程式碼塊");    }     public Father(){        System.out.println("Father的構造方法");    }}public class Demo{    public static void main(String[] args) {        Son son = new Son();    }}