请选择 进入手机版 | 继续访问电脑版

JVM核心原理:JVM应该怎么学

[复制链接]
发表于 2018-3-23 11:18:09 |显示全部楼层
   
    学习Java的人,怎么能对jvm(Java虚拟机)一无所知呢?即便我们对于jvm达不到精通的地步,最基本的知识还是需要了解的。

    jvm是如何执行java的。

      在理解JVM之前,首先要有一个大前提,那就是JVM的运行是以栈为基础的。
  
一个Java文件的运行里程是这样的。首先Javac将java编译成字节码,然后由JVM的类加载器将class文件加载到JVM之中。

如果想知道JAVAC是如何将Java源文件编程成CLASS字节码的同学,可以看《javac的学习_编译原理》等知识。

   
2.JVM的组成

        JVM由4大部分组成:ClassLoader【类加载】,Runtime Data Area运行时数据区,Execution Engine【执行引擎】,Native Interface本地接口

         jvm.jpg


                       (图片来自网络)
Runtime Data Area:
  
      Stack(): Java栈的区域很小,只有1M,特点是存取速度很快,所以在stack中存放的都是快速执行的任务,基本数据类型的数

据,和对象的引用(reference)

      Heap(堆): 对象数据存放.类的对象放在heap(堆)中,所有的类对象都是通过new方法创建,创建后,在stack(栈)会创建类对

象的引用(内存地址)
   
      Method Area(方法区):类数据存放,通常 类数据包括字段和方法名等等
  
      PC Register(PC寄存器(Program Counter Register))

      本地方法栈则为虚拟机使用到的Native方法服务


Execution Engine 执行引擎


       Java.exe的作用就是将Class文件加载到JVM中

       最后,今天的分享就进行到这里.如果你有什么想要说的,欢迎留言。
         
            
   
        

参考资料:https://www.cnblogs.com/eastday/p/8124580.html
              https://my.oschina.net/wangsifangyuan/blog/711329


  



您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|沙漏笔记

GMT+8, 2019-8-22 06:12 , Processed in 0.134208 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Copyright © 2015-2018 xuejava网 / 鲁ICP备17054568号-1
回顶部