1、创建.java源文件
2、通过java编译器生成与平台无关的.class二进制字节码(0,1)程序
3、类装载器ClassLoader等加载(管理分配内存,根据不同平台生成不同机器码)
STACK栈内存:
栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。
Java虚拟机的栈有三个区域:局部变量区、运行环境区、操作数区。
局部变量区:
基本数据类型
byte://1字节有符号整数的补码JVM
short://2字节有符号整数的补码
int://4字节有符号整数的补码
long://8字节有符号整数的补码
float://4字节IEEE754单精度浮点数
double://8字节IEEE754双精度浮点数
char://2字节无符号Unicode字符
HEAP堆内存:
一般用于存放不放在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量使用final修饰后,放在堆中,而不是栈中。
包装类数据
4、操作系统运行程序
5、硬件显示