首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我们写的Java代码是怎么运行起来的?

在进行“我们写的Java代码是怎么运行起来的?”这个话题之前,我们先来了解一个概念:JVM。

什么是JVM?

先来看下百度百科的定义:

定义描述得很清楚,其实我们只需要把它理解为一种工具,一种将java代码翻译给具体计算机是别的翻译机器,类似于你跟一个老外交流,但是你不懂英语,需要一个懂英语的帮你进行翻译,你才能理解老外的意思,这里你就是具体的计算机了。

百度百科

每个学习Java的人都应该听过这句话“write once run anywhere”编写一次,到处运行。实际上并不是你写的代码真的可以运行到任何计算机上,而是计算机之上又封装了一个虚拟的运行环境jvm,代码实际运行在jvm上,jvm对底层计算机做了封装,所以jvm我们可以理解为 "用于运行Java代码的一个虚拟的机器"。上图应该修改如下

我们写的Java代码是怎么运行起来的?

现在让我们来回到主题,来探讨下java代码是怎么运行的。

假设现在有一个写好的项目HelloWorld,其中包含很多Java后缀的代码,譬如:HelloWorld.java 。

我们来回顾下这些代码是怎么部署并运行的?

一般情况下我们会先将代码打成jar包或者war包,然后通过以下两种方式部署:

通过容器如Tomcat等来部署代码

通过“Java”命令来运行jar包中的代码

图中打包就是一个编译的过程:将.java代码编译成.class后缀的字节码文件 HelloWorld.class

编译好的“.class"字节码文件是怎么运行的?实际启动的时候,就是启动了一个JVM,由它负责运行机器上的这些代码

jvm运行字节码机制

jvm是如何将class文件加载到内存中供后续运行使用的呢?这里引入一个概念叫:类加载器。

类加载器:将.class文件加载到JVM中。供后续代码运行使用

总结

以上就是编写的java类具体运行机制,让我们来梳理一下:

了解JVM是个什么东西

写好的代码编译成”.class"后缀的字节码文件

JVM跟我们平时运行在机器上的系统之间是什么关系

类加载器的概念

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200206A042PD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券