关于JVM原理的一些通俗理解

    JVM简称Java Virtual Machine

    1. 结构

    首先,JVM,JRE,JDK是有区别的,是包含与被包含的关系(JVM和类库组成JRE,JRE和一些编译工具组成JDK)。大家都知道java有一句口号,write once,run everywhere。Java是怎么做到编写一次,处处运行的呢?

    Java是运行级别的跨平台(.java源文件编译成.class之后到处运行),而C/C++是编译级别的跨平台(一个一个平台编译,因为每个系统层面的调用是不一样的)。

    JDK分为,JDK for windows,JDK for linux,JDK for mac,可以理解为JVM for windows等等,为什么JDK还要分这么多版本?因为不同的系统原理一样都是基于高低电频,也就是01001100类似(非量子计算机)。但是操作系统分很多种linux,mac等等,所以JVM软件层是屏蔽了底层硬件,指令层面的细节。

    2. JVM运行时数据区

    Java运行的最小单位是线程,Java代码就是数据指令和控制。未完,待续。。。

    程序计数器

        JVM运行的是.class字节码文件,程序计数器会指向当前线程运行到的字节码文件的行号。

    虚拟机栈

        

你可能感兴趣的:(JVM)