本篇内容主要讲解“Java程序的运行过程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序的运行过程是什么”吧!1、编辑源代码xxx.java2、编译xxx.java文件生成字节码文件xxx.class3、JVM中的类加载器加载字节码文件4、JVM中的执行引擎找到入口方法main(),执行其中的方法从我们写的java文件到通过编译器编译成java字节码文件(也就是.class文件),这个过程是java编译过程;字节码文件:真正实现了java语言的跨平台。各种不同平台的虚拟机都统一使用这种相同的程序存储格式。更进一步说,jvm运行的是class字节码文件,只要是这种格式的文件就行,所以,实际上jvm并不像我之前想象地那样与java语言紧紧地捆绑在一起。把一个简单的HelloWorld程序生成的字节码文件重定向为txt文件:javap -v HelloWorld > HelloWorld.class.txt,部分信息如下一份字节码文件包含了魔数与 Class 文件的版本,常量池,访问标志等等信息,总之,字节码文件很简单很强大,它存放了这个类的各种信息:字段、方法、父类、实现的接口等各种信息。Java虚拟机要运行字节码指令,就要先加载字节码文件,谁来加载,怎么加载,加载到哪里……谁来运行,怎么运行呢?JVM在执行Java程序的过程中会把它所管理的内存分为若干个不同的免费云主机域名区域,这些区域都有各自的用途。1、程序计数器:可以看作是当前线程所执行的字节码的行号指示器(指示当前线程,所以是线程私有的),字节码解释器工作时需要通过改变这个程序计数器的值来选取下一条所需要执行的字节码指令,循环、跳转、异常处理、线程恢复等基础功能都要依赖它来完成。2、JVM栈:描述的是Java方法执行的内存模型:每个方法在执行时都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接和方法出口等信息。每一个方法从调用直到执行完成的过程,就对应一个栈帧从虚拟机栈中入栈到出栈的过程。3、本地方法栈:虚拟机栈执行的是Java方法(也就是字节码)服务,而本地方法栈则为虚拟机所使用到的Native方法服务。4、堆:是被所有线程共享的一块区域,在虚拟机创建是创建,此内存的唯一目的是存放对象实例,它也是垃圾收集器管理的主要区域。5、方法区:也是所有线程共享的一块区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法区中有运行时常量池。总结:JVM的功能模块主要包括类加载器、执行引擎和垃圾回收系统。虚拟机把描述类的数据从字节码文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。执行引擎找到main()这个入口方法,执行其中的字节码指令。执行引擎处理过程:输入字节码文件,进行字节码解析的等效过程,输出执行结果。到此,相信大家对“Java程序的运行过程是什么”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
相关推荐: Docker compose如何部署minio服务
这篇文章主要介绍了Dockercompose如何部署minio服务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Dockercompose如何部署minio服务文章都会有所收获,下面我们一起来看看吧。最近才知道minio这个对象存…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。