Java虚拟机深入详解JVM之类加载器深度剖析、类的主动使用、被动使用

由于星期六没上班,很多朋友在问Jvm的原理 抽时间写了一个很简短的教程。

 

郑重声明:本文为原创文章,转载请注明出处否则追究其法律责任。

 

一 首先我们看一段代码:如下

 

package csdn.qiailin.classloader; /** * JvmExample * * @author 漆艾林 2011年1月22日 13:05:12 */ public class JvmExample { private static JvmExample jvmExample = new JvmExample(); private static int count1; private static int count2 = 0; public JvmExample() { count1++; count2++; } public static JvmExample getInstance() { return jvmExample; } public static void main(String[] args) { JvmExample jvmExample = JvmExample.getInstance(); System.err.println(“count1=” + jvmExample.count1); System.err.println(“count2=” + jvmExample.count2); } }

 

大家看下结果是多少,当然我这里先不给出答案。

 

做完之后再看下面一段代码:如下

package csdn.qiailin.classloader; /** * JvmExample * * @author 漆艾林 2011年1月22日 13:05:12 */ public class JvmExample { private static int count1; private static int count2 = 0; private static JvmExample jvmExample = new JvmExample(); public JvmExample() { count1++; count2++; } public static JvmExample getInstance() { return jvmExample; } public static void main(String[] args) { JvmExample jvmExample = JvmExample.getInstance(); System.err.println(“count1=” + jvmExample.count1); System.err.println(“count2=” + jvmExample.count2); } }

 

做完上面两道题目,如果你的答案跟代码运行的结果一致的话。我想你对Jvm理解已经非常深入了。下面的内容你也就不用再看了,如果想加深理解当然可以选择继续。如果你的答案错误的话,说明你对Jvm的理解还不是非常透彻那么下面的内容你就得仔细看了。

 

讲解的过程中我会把理解的标题写出来以及理解在下面解说里面。

 

一 首先我们需要了解一下Java虚拟机与程序的生命周期。

 

在如下几种情况下,Java虚拟机将结束生命周期

 

(1) 执行了System.exit()方法

 

(2) 程序正常执行结束

 

(3) 程序在执行过程中遇到异常或错误而异常终止

 

(4) 由于操作系统出现错误而导致Java虚拟机进程终止

 

上面四种情况都会导致Jvm结束。

 

 

未完待续

 

 

    原文作者:java虚拟机
    原文地址: https://blog.csdn.net/qiailin/article/details/6158327
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞