java代码运行过程(简述java语言的执行过程)

2026-05-23 22:30:01 :0

java代码运行过程(简述java语言的执行过程)

这篇文章给大家聊聊关于java代码运行过程,以及简述java语言的执行过程对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

简述java语言的执行过程

1、java编译生成的字节码,在所有操作系统都是一样,故其有这样的特点:
write once, run anywhere.其意思:只需要一次编码,就可以在任何环境下运行。
2、不同的操作系统,其java 虚拟机是不一样的。虚拟机将java字节代码转换对应操作系统的
相关指令,保证其正常运行。
3、java 系统支持所有的硬件的平台,不存在你提及的问题,你可以放心使用。
4、解释器在java虚拟机中,编译器在JDK或JRE 中。
5、java虚拟机就是常说的java 运行环境,其缩写是 JRE,安装在操作系统下的一个目录中,
这个目录在安装时可以由你自行指定,就像你安装其它应用软件一样。JDK中包含了JRE,
还有开发环境,如编译器,帮助文档生成器,以及系统API的jar库文件等。

java程序运行的五个步骤

1、Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode)  2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点像make。如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。

        编译后的字节码文件格式主要分为两部分:常量池和方法字节码。常量池记录的是代码出现过的所有token(类名,成员变量名等等)以及符号引用(方法引用,成员变量引用等等);方法字节码放的是类中各个方法的字节码。

第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载  2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

2、下面是程序运行的详细步骤:

  • 在编译好java程序得到Main.class文件后,在命令行上敲java Main。系统就会启动一个jvm进程,jvm进程从classpath路径中找到一个名为Main.class的二进制文件,将Main的类信息加载到运行时数据区的方法区内,这个过程叫做Main类的加载。

  • 然后JVM找到Main的主函数入口,开始执行main函数。

  • main函数的第一条命令是Animal  animal = new Animal("Puppy");就是让JVM创建一个Animal对象,但是这时候方法区中没有Animal类的信息,所以JVM马上加载Animal类,把Animal类的类型信息放到方法区中。

  • 加载完Animal类之后,Java虚拟机做的第一件事情就是在堆区中为一个新的Animal实例分配内存, 然后调用构造函数初始化Animal实例,这个Animal实例持有着指向方法区的Animal类的类型信息(其中包含有方法表,java动态绑定的底层实现)的引用。

  • 当使用animal.printName()的时候,JVM根据animal引用找到Animal对象,然后根据Animal对象持有的引用定位到方法区中Animal类的类型信息的方法表,获得printName()函数的字节码的地址。

  • 开始运行printName()函数。

解释一下下面Java代码的运行过程

你好,提问者:

首先此代码编译不通过,原因:main方法是静态的,不能调用非静态方法,因此

Coun c1=new Coun();//调Coun方法是报错的。如图1:

若Coun不是普通方法,那就是构造方法,需要讲类名跟构造方法,书写一致。如图2:


public class Coun {
int s;
static  int c;
public static void main(String args) {
Coun c1=new Coun();   //此处走往c:1,s:1
Coun c2=new Coun();   //此处走完c:2,s:2
System.out.println(c1.s);
System.out.println(c1.c);//故有问题的在此处,此处c1.c为2,是因为c使用了static修饰
System.out.println(c2.s);
System.out.println(c2.c);
}
public Coun(){
System.out.println("1111111");
c++;
s = c;
}
int getS(){
return  s;
}
int getC(){
return c;
}
}

结果:

1111111

1111111

1

2

2

2

若解决了你的问题,请采纳,若有疑问,请提问,谢谢!

关于java代码运行过程到此分享完毕,希望能帮助到您。

java代码运行过程(简述java语言的执行过程)

本文编辑:admin

更多文章:


devicenet通讯协议(DeviceNet协议的对象模型)

devicenet通讯协议(DeviceNet协议的对象模型)

大家好,devicenet通讯协议相信很多的网友都不是很明白,包括DeviceNet协议的对象模型也是一样,不过没有关系,接下来就来为大家分享关于devicenet通讯协议和DeviceNet协议的对象模型的一些知识点,大家可以关注收藏,免

2026年2月16日 10:00

软考中级职称(中级职称软考有哪些)

软考中级职称(中级职称软考有哪些)

大家好,今天小编来为大家解答以下的问题,关于软考中级职称,中级职称软考有哪些这个很多人还不知道,现在让我们一起来看看吧!本文目录中级职称软考有哪些软考中级哪个最容易过软考中级职称有哪些软考直接报中级职称可以吗软考中级相当于什么职称软考中级可

2025年12月16日 13:45

settimeout在shell(如何写一个shell脚本用sftp上传文件)

settimeout在shell(如何写一个shell脚本用sftp上传文件)

大家好,如果您还对settimeout在shell不太了解,没有关系,今天就由本站为大家分享settimeout在shell的知识,包括如何写一个shell脚本用sftp上传文件的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始

2026年3月4日 05:00

2020至2021nba最新排名(nba薪资排名(NBA球员年收入排名出炉))

2020至2021nba最新排名(nba薪资排名(NBA球员年收入排名出炉))

本篇文章给大家谈谈2020至2021nba最新排名,以及nba薪资排名(NBA球员年收入排名出炉)对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录nba薪资排名(NBA球员年收入排名出炉)nba常规赛掘金近几年排名nba历史排

2026年1月2日 06:00

微信发广告赚钱平台(微信广告助手怎么赚钱)

微信发广告赚钱平台(微信广告助手怎么赚钱)

本篇文章给大家谈谈微信发广告赚钱平台,以及微信广告助手怎么赚钱对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录微信广告助手怎么赚钱几款自媒体

2026年7月6日 17:45

thefacts课文(a hero’s aspiration课文翻译)

thefacts课文(a hero’s aspiration课文翻译)

大家好,thefacts课文相信很多的网友都不是很明白,包括a hero’s aspiration课文翻译也是一样,不过没有关系,接下来就来为大家分享关于thefacts课文和a hero’s aspiration课文翻译的一些知识点,大家

2026年1月5日 01:30

在线文字转图片工具(怎么把微博长文转成照片)

在线文字转图片工具(怎么把微博长文转成照片)

大家好,如果您还对在线文字转图片工具不太了解,没有关系,今天就由本站为大家分享在线文字转图片工具的知识,包括怎么把微博长文转成照片的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录怎么把微博长文转成照片图片转文字软件

2026年8月26日 19:15

法国晋级世界杯决赛(为什么世界杯决赛法国队会输)

法国晋级世界杯决赛(为什么世界杯决赛法国队会输)

“法国晋级世界杯决赛”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看法国晋级世界杯决赛(为什么世界杯决赛法国队会输)!本文目录为什么世界杯决赛法国队会输法国几次世界杯夺冠世界杯中法国几次进决赛法国世界杯法国世界杯决赛阵容如何

2026年5月8日 16:00

finder在苹果手机里怎么打开(苹果手机终端怎么打开)

finder在苹果手机里怎么打开(苹果手机终端怎么打开)

其实finder在苹果手机里怎么打开的问题并不复杂,但是又很多的朋友都不太了解苹果手机终端怎么打开,因此呢,今天小编就来为大家分享finder在苹果手机里怎么打开的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录苹

2026年5月24日 01:45

vlookup函数的好处(voolkup是什么)

vlookup函数的好处(voolkup是什么)

其实vlookup函数的好处的问题并不复杂,但是又很多的朋友都不太了解voolkup是什么,因此呢,今天小编就来为大家分享vlookup函数的好处的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录voolkup是什

2026年8月16日 13:15

javascript数组拼接(javascript连接许多字符串,且用空格隔开,有没有什么方便的写法)

javascript数组拼接(javascript连接许多字符串,且用空格隔开,有没有什么方便的写法)

各位老铁们,大家好,今天由我来为大家分享javascript数组拼接,以及javascript连接许多字符串,且用空格隔开,有没有什么方便的写法的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的

2026年9月20日 22:00

subject to是什么意思(subject to是什么意思)

subject to是什么意思(subject to是什么意思)

大家好,如果您还对subject to是什么意思不太了解,没有关系,今天就由本站为大家分享subject to是什么意思的知识,包括subject to是什么意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录su

2025年10月12日 15:30

jsp文件是用来编写什么的(解释JSP的作用,并列举JSP的特点)

jsp文件是用来编写什么的(解释JSP的作用,并列举JSP的特点)

今天给各位分享解释JSP的作用,并列举JSP的特点的知识,其中也会对解释JSP的作用,并列举JSP的特点进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录解释JSP的作用,并列举JSP的特点jsp可以做什么解释J

2025年11月5日 13:00

vb编程设计例题100例答案(vb程序设计题,请高手解答)

vb编程设计例题100例答案(vb程序设计题,请高手解答)

“vb编程设计例题100例答案”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看vb编程设计例题100例答案(vb程序设计题,请高手解答)!本文目录vb程序设计题,请高手解答VB编程题vb程序设计题,请高手解答Vb编程实现两个

2026年9月8日 15:45

thesettingsun怎么翻译([汉译英]各位高手 来帮下忙 翻译几个词个句子)

thesettingsun怎么翻译([汉译英]各位高手 来帮下忙 翻译几个词个句子)

今天给各位分享[汉译英]各位高手 来帮下忙 翻译几个词个句子的知识,其中也会对[汉译英]各位高手 来帮下忙 翻译几个词个句子进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录[汉译英]各位高手 来帮下忙 翻译几个

2025年9月2日 22:00

社会工作数据库是什么(当前社会工作数据库主要用什么)

社会工作数据库是什么(当前社会工作数据库主要用什么)

大家好,如果您还对社会工作数据库是什么不太了解,没有关系,今天就由本站为大家分享社会工作数据库是什么的知识,包括当前社会工作数据库主要用什么的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录当前社会工作数据库主要用什

2025年10月5日 21:15

bootstrap软件下载(网页动态设计软件)

bootstrap软件下载(网页动态设计软件)

大家好,今天小编来为大家解答以下的问题,关于bootstrap软件下载,网页动态设计软件这个很多人还不知道,现在让我们一起来看看吧!本文目录网页动态设计软件越狱手机怎么安装不了rocketbootstrapweb前端用哪个软件比较好npm下

2026年5月28日 23:30

实体转jsonobject(如何实现实体与json的转化)

实体转jsonobject(如何实现实体与json的转化)

本篇文章给大家谈谈实体转jsonobject,以及如何实现实体与json的转化对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何实现实体与

2025年7月26日 07:45

conclude用法及例句(conclude的用法)

conclude用法及例句(conclude的用法)

各位老铁们好,相信很多人对conclude用法及例句都不是特别的了解,因此呢,今天就来为大家分享下关于conclude用法及例句以及conclude的用法的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录concl

2026年1月8日 15:00

headache 中文翻译(翻译成中文 1.have a toothache 2.have an earache3.have a cold)

headache 中文翻译(翻译成中文 1.have a toothache 2.have an earache3.have a cold)

“headache 中文翻译”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看headache 中文翻译(翻译成中文 1.have a toothache 2.have an earache3.have a cold)!本文目

2025年12月17日 10:15

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索