【说站】java程序编好了怎么运行
2023-06-13 09:13:14 时间
java程序编好了怎么运行
1、编译java程序获得MainApp.class文件后,在命令行敲击java AppMain。该系统将启动jvm过程。jvm过程将从classpath路径中找到一个叫做苹果手机的二进制文件,并将苹果手机的类别信息加载到运行时数据区域的方法区域。这个过程叫做苹果手机的加载。
2、JVM找到AppMain的主函数入口,开始执行main函数。
main函数的第一条命令是Animalanimal=newAnimal(“Puppy”)让JVM制作Animal对象,但此时方法区域没有Animal类的信息,JVM立即加载Animal类,将Animal类的类型信息放入方法区域。
3、加载Animal类后,Java虚拟机首先在堆积区分配新的Animal实例内存,调用结构函数初始化Animal实例,该Animal实例具有指向方法区域的Animal类型信息(包括方法表、java动态绑定的基础实现)
4、使用animal.printName()时,JVM根据animal引用找到animal对象,根据animal对象持有的引用定位在方法区域的animal类型信息的方法表中,获得printName()函数字节码的地址。
5、开始运行printName()函数。
拓展:
运行说明
编译后的字节代码文件格式主要分为常量池和方法字节代码两部分。常量池记录了代码出现的token(类名、成员变量名等)和符号引用(方法引用、成员变量引用等)的方法的打工代码放置在类别中各种方法的打工代码中。
以上就是java程序编译后运行的方法,需要我们在之前就对文件有所编译,对这部分内容不太清楚的可以在课后学习。然后就可以跟着上面的运行步骤,执行有关的程序了。
相关文章
- 第一个Java程序示例——Hello World!「建议收藏」
- java反转数组_Java实现数组反转翻转的方法实例
- java怎么输出保留两位小数_剖析Java输出怎么保留两位小数「建议收藏」
- java单例模式——详解JAVA单例模式及8种实现方式
- java中applet是什么意思_Java Applet与Java Application的区别
- java常量池在方法区还是堆_JAVA常量池
- java 反射getmethod_Java 反射机制中 getMethod()和getDeclaredField()区别
- JAVA string转map_java怎么转业务
- 【Java】jar启动的java程序报错FileNotFoundException
- java 舆情分析_基于Java实现网络舆情分析系统研究与实现.doc[通俗易懂]
- JAVA为啥要用stream流处理_java哪个部分最难学
- 全文检索工具elasticsearch:第三章: Java程序中的应用
- 【Java 虚拟机原理】Class 字节码二进制文件分析 三 ( 访问和修饰标志 | 类索引 | 父类索引 | 接口计数器 | 接口表 | 字段计数器 | 字段表 )
- java并发编程(2):Java多线程-java.util.concurrent高级工具
- 实现Java程序操作MySQL数据库(java调用mysql)
- 如何使用Java连接MySQL数据库(java怎么连接mysql数据库)
- Java操作MySQL数据库:实现看似不可能的梦想(java连接mysql数据库)
- 程序Linux下构建Java应用:从入门到精通(linux下开发java)
- Linux环境中如何顺利执行Java程序?(linux下执行java)
- 使用Java远程控制Linux 实现简单、高效的服务器管理(java控制linux)
- 运行Linux中定时运行Java程序的实用方法(linux定时java)
- 程序Oracle调用Java程序的实现方法(oracle调用java)
- Learn How to Connect Your Java Application with MongoDB in Just a Few Steps(java连接mongodb)
- Java程序调用Linux系统命令实现更多功能(java调用linux命令)
- Java程序构建Oracle数据库直连(java直连oracle)
- Java程序建立Oracle数据库表的实现方式(java建oracle表)
- 在Java中利用Oracle数据库进行应用开发(java中oracle)
- 基于Java实现的Base64加密、解密原理代码
- linux下执行java程序的sh脚本分享