一个java文件的一生
2021-07-12 本文已影响0人
段段小胖砸
.java文件——javac——class文件——进入类加载子系统——选择类加载器(引导类加载器、扩展类加载器、应用类加载器)——连接(校验、准备、解析)——初始化(赋初值,比如静态变量为0)——加载完之后进入运行时数据区——类信息进入方法区——pc寄存器也就是程序计数器记录类中方法的调用——堆中存放对象的信息——栈中是类中方法之间的互相调用,同时会存储局部变量、方法出口等——字节码想要在机器上执行还需编译成机器码这就需要执行引擎——执行引擎中有两种翻译为机器码的方式:编译器,将字节码编译成机器码,和c语言的编译器一样;JIT即时编译器,在运行时,动态编译字节码文件,包含了中间代码生成器和代码优化器等——机器码也会调用机器中的本地类库——gc回收