JVM 白小白——基本认识(一)

迈不过友情╰ 2023-06-29 10:45 130阅读 0赞

目录

一、对平台的认识

二、对JVM的认识

1、对程序计数器的认识

2、对栈的认识


一、对平台的认识

在学习了J2EE之后,会涉及到java平台这个概念,可以从不同的角度去理解平台;很多文章认为是J2SE,J2EE,J2ME 都是不同的java平台,分别是基础平台,企业级平台,和微型平台。

  1. 但可以从java运行基础平台去理解,目前了解到,代码运行的最底层是我们的OS操作系统,再上面就是我们的JVM--java虚拟机,再有就是我们的JRE---java运行环境,这些都包含在我们经常使用的JDK--java开发工具包中。

二、对JVM的认识

  1. java作为解释型语言可以一次编译多次运行,这其中JVM的作用是功不可没的。

JVM会有会把编译后的代码和数据存储在公共的方法区,JVM的核心操作是虚拟机栈VM Stack,简单理解为是一级缓存,虚拟机栈操作完成的变量暂时存储在本地方法栈中,本地方法栈供虚拟机栈的调用和临时存储;存储new出来的类的实例和全局变量公共调用区,简单理解为二级缓存。那么方法和对象以及数据间的加载顺序是由谁来控制的呢? 那就是程序计数器了,它是每个线程私有的,每一个线程都会有一个自己的程序计数器。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htbDE5OTY_size_16_color_FFFFFF_t_70

1、对程序计数器的认识

根据图中的解释,程序计数器是线程执行的字节码的行号指示器,怎么理解? 什么是字节码? 行号指示器怎么理解?

你有没有过这样的疑问:我们在执行代码的时候经常会遇到多线程的情况,当在执行主线程的过程中,还可以执行其他的子线程,子线程执行完后,还可以继续回来执行未执行完的主线程,这其中程序计数器是怎么做的标识呢?

已经有人做了详细的解答:程序计数器的详解

2、对栈的认识

根据图中对栈中VM Stack的解释,它可以作为操作栈,加载计算局部变量,虚拟机栈和本地方法栈之间有什么关系?在栈之间的调用过程中,字节码又起到了什么作用呢?

参考两篇经典的博客详解:JVM中的字节码 Java字节码介绍

小结:参考经典的文章可以更好理解,站在巨人的肩膀上

目前了解到这里,欢迎交流~

发表评论

表情:
评论列表 (有 0 条评论,130人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Sql入门()概述

        虽然接触Sql的时间挺长了,但是一直都没有对Sql整理、总结,许多东西都是一知半解,所以将笔者学习Sql的笔记,整理为博客,对自己也算是一个归纳总结的过程,如果有错误之