Java程序执行过程
来源:互联网 发布:将文件保存到数据库 编辑:程序博客网 时间:2024/05/17 09:14
每个Java程序执行前都必须经过编译、加载、连接和初始化这几个阶段
编译:创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用。如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。编译后的字节码文件格式主要分为两部分:常量池和方法字节码。常量池记录的是代码出现过的所有token(类名,成员变量名等等)以及符号引用(方法引用,成员变量引用等等);方法字节码放的是类中各个方法的字节码
加载:加载是指将编译后的java类文件(.class文件)中的二进制数据读入内存,并将其放在运行时数据区的方法区内,然后再堆区创建一个java.lang.Class对象,用来封装类在方法区的数据结构。即加载后最终得到的是Class对象,并且更加值得注意的是:该Java.lang.Class对象是单实例的,无论这个类创建了对少个对象,它的Class对象是唯一的!而加载并获取该Class对象可以通过三种途径:Class.forName(类的全名称)、实例对象.class(属性)、实例对象getClass()。
连接和初始化阶段,其实静态变量经过了两次赋值:第一次是静态变量类型的默认值;第二次是我们真正赋给静态变量的值。
阅读全文
0 0
- java程序执行过程
- JAVA程序执行过程
- Java程序执行过程
- java程序执行过程
- java程序执行过程
- java程序执行过程
- Java程序执行过程
- Java程序执行过程分析
- Java程序的执行过程
- java程序执行过程,参数传递过程
- 一个Java程序的执行过程
- java程序执行内存处理过程
- java程序执行内存处理过程
- 一个Java程序的执行过程
- 一个Java程序的执行过程
- Java程序执行过程的内存分析
- (转)Java 程序的执行过程
- 一个java程序的执行过程
- 100亿数据1万属性数据架构设计
- Android开发者的福利!
- 编译应用到android5.1系统
- 跟着实例学习ZooKeeper的用法: 分布式锁
- 非线性回归(逻辑回归)
- Java程序执行过程
- 1003第三届程序设计大赛 让气球飞起来
- HDU 6228 Tree ACM/ICPC 2017 Shenyang(思维)
- ubuntu 16.04安装NVIDIA GTX1070
- 1029第二届程序设计大赛 数字根
- 双十一你还在“剁手”吗?我在这里准备了5T的学习视频等你来取哦!
- bootstrap其它组件
- 菱形继承问题(default)
- UVA