java学习笔记——程序运行过程
来源:互联网 发布:晕血学生物 知乎 编辑:程序博客网 时间:2024/06/14 14:31
class Phone{
String pcolour;
String psize;
void telephone(String num){
System.out.println("calling");
}
void information(String text,String num){
System.out.println("send a message");
}
}
class Main{
public static void main(String []args){
Phone noble=new Phone;
noble.telephone("12306");
}
}
源文件创建完成后,由被编译为.class文件,java编译一个类时,若这个类所依赖的另一个类还未被编译,编译器会先编译这个被依赖的类,然后再引用,否则,就直接引用。编译过后的程序可在javaJVM上运行。JVM大致可分为三个模块:方法区、堆、栈。
方法区:加载class文件
堆:存放实例化对象
栈:方法的运行
在本例中,具体过程如下:编译java程序得到Main.class文件和Phone.class文件后,在命令行上输入java Main。JVM加载Main.class文件到方法区,在加载过程中,分析此类有一个特殊的方法main,并运行main方法。它的第一条命令为Phone noble=new Phone;JVM创建一个Phone对象,此时方法区中是没有Phone.class的信息的,JVM加载Phone.class,把它的类型信息放到方法区中,然后,JVM在堆区里为一个新的Phone分配实例内存,然后调用构造函数初始化Phone实例(这个Phone实例有着指向方法区的Phone.class的类型信息)。执行noble.telephone("12306");时,JVM根据noble找到Phone对象,根据Phone对象持有的引用定位到方法区中Phone.class的类型信息的方法表,获得telephone()函数的字节码地址。开始执行telephone()函数。
- java学习笔记——程序运行过程
- java学习一 java程序运行过程
- VC学习笔记(一)——程序的应用框架和运行过程
- JVM 学习笔记-java程序编译和运行的过程
- java程序运行过程
- Java程序运行过程
- Java程序运行过程
- 学习笔记--Android Studio运行java程序
- apk程序运行过程图(学习笔记)
- JAVA学习笔记——运行我的第一个程序(day01)
- java程序运行过程解析
- java 程序运行过程 简介
- java程序的运行过程
- java程序运行过程解析
- Java程序的运行过程
- Python学习笔记———《计算程序运行时间》
- VC++学习笔记——Windows程序内部运行原理
- IOS学习笔记1—Iphone程序运行流程
- Portpolio management
- 196. Delete Duplicate Emails
- Go 语言小记
- idea操作github
- Island Transport HDU
- java学习笔记——程序运行过程
- Spark 用户访问量
- Android --- 多媒体应用(使用VideoView、TextureView播放视频)
- [DP 倍增Floyd] LOJ#539.「LibreOJ NOIP Round #1」旅游路线
- Chrome 浏览器客户端调试大全
- 在Vue-cli里基于axios封装复用请求
- caffe中的SoftmaxLoss层
- wxWidgets嵌入CEF3,并实现JavaScript调用C++代码
- JZOJ 2413. 【NOI2005】维护数列