当大家开发Java的时候,最终的目的是让程序顺利运行。 因此,必须保证执行步骤的正确性。 那么今天共享Java程序的执行步骤吧。 请参考以下方法!
下面的java程序介绍了从编译java程序到最后运行java程序的总体流程。 代码如下。 //MainApp.java
publicclassMainApp
{
publicstaticvoidmain (字符串[ ] args ) )。
{
animalanimal=newanimal('puppy );
animal.printName (;
}
}
//Animal.java
公共类动画
{
公共字符串名称;
公共动画(字符串名称)。
{
this.name=name;
}
publicvoidprintName (
{
system.out.println (' animal [ ' name ' ] );
}
}
步骤1 (编译) :
创建源文件后,程序首先编译为. class文件。 Java编译类时,如果该类所依赖的类尚未编译,编译器将首先编译并引用依赖的类,否则直接引用。 这和make很像。 如果在java编译器指定的目录下找不到该类所依赖的类的. class文件或. java源文件,则编译器将显示" cant "
查找同步错误。
编译后的字节码文件格式主要分为常量池和方法字节码两部分。 常量池记录出现代码的所有token (类名、成员变量名称等)和符号引用(方法引用、成员变量引用等)。 方法的字节码包含类中每个方法的字节码。 以下是MainApp.class反汇编的结果。 您很清楚. class文件的结构。
步骤2 (执行) java类执行的进程大致分为两个进程。
1、班级加载
2、班级执行。 另外,JVM主要在程序第一次积极使用类时加载该类。 也就是说,JVM必须在必须使用的时候才加载,而不是从一开始就用一个程序将所有类加载到内存中。 而且,只加载一次。
程序执行的详细步骤如下所示。
1、编译java程序得到MainApp.class文件后,在命令行上敲java
APp主。 系统将启动jvm进程。 jvm进程从classpath路径中找到名为AppMain.class的二进制文件,并将MainApp的类信息加载到运行时数据区的方法区域中。 此过程称为加载主app类。
2、然后JVM找到AppMain的主函数入口,开始执行main函数。
3、main函数的第一个命令是Animal animal=new
动画(puppy ); 就是让JVM创建Animal对象,但是因为方法区域中没有Animal类的信息,所以JVM会立即加载Animal类,并将Animal类的类型信息放入方法区域。
4、加载Animal类后,Java虚拟机首先要做的就是为堆中的新Animal实例分配内存。
然后调用构造函数初始化Animal实例。 此Animal实例具有对方法区域的Animal类类型信息的引用,该区域包含方法表、java动态绑定的基础实现。
5、使用animal.printName ()时,JVM根据animal引用找到animal对象,并根据animal对象具有的引用将其定位到方法区域中animal类类型信息的方法表中
6、开始执行printName ()函数。
从文中的共享可以看出,整个Java的编译和运行过程相当繁琐,但大家不需要害怕。 只要程序逻辑清晰,编写时间长也没关系。 最终必须保证程序的正确性。 最后,如果想了解更多关于java入门的知识,请关注奇q工具网。
请阅读: