首先会判断是否存在编译错误…
然后编译源代码到字节码…
然后对字节码做优化估计…
当然编译的时候也要链接它所关联的类…比如父类接口等等…
如果使用的javahot编译器可能不会一次性将所有源代码编译为字节码…
这种编译器会在每次运行的时候编译这次需要的部分并且做优化不需要的部分不去编译…
推荐你一本底层的书看看 叫 深入java虚拟机 很底层的书看了你就明白啦 这不是一句2句能说清楚的…
java在编译阶段 会把java源代码 编译成 class 跨平台的字节码
在JVM中运行的时候 首先需要把编译出来的class文件 与 import了的jdk中的class 进行连接 然后才运行
注意java运行是在JVM(java虚拟机)上的