java core是什么,讓我們一起了解一下:
core是unix系統的內核。當你的程序出現內存越界的時候,操作系統會中止你的進程,并將當前內存狀態倒出到core文件中,以便進一步分析,Core模塊主要包含Spring框架基本的核心工具類。
core在Java程序運行時,有時會產生JavaCore及HeapDump文件,它一般發生于Java程序遇到致命問題的情況下。
有時致命問題發生后,Java應用不會死掉,還能繼續運行,但有時致命問題發生,Java進程會死掉。為了能夠保留Java應用發生致命錯誤前的運行狀態,JVM在死掉前產生兩個文件,分別為JavaCore及HeapDump文件。
這兩者有何區別?
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(); ????} }
以上就是小編今天的分享了,希望可以幫助到大家。