java core

<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();    }}