[讨论] <<深入java虚拟机>>问题讨论
Steven_Xiao
2010-10-12
最近也在跟风看深入JVM,好多概念以前都没有听说过.所以一下子理解起来也挺难的.
请问有看过这本书的人或者对java很了解的人帮我解惑: java的编译阶段和连接时候的解析阶段有什么区别. (问题多多.遇到再问吧 ) |
|
taolei0628
2010-12-09
简单说一下我的理解。
1、java源代码编译成class字节码文件的静态编译。 2、jvm类装载过程 3、解释运行以及JIT,通常解释运行满足某种条件(通常是超过一定次数)后,启动JIT. |
|
allenhooo
2010-12-31
不太清楚楼主的意思,
编译阶段的所谓解析应当是指编译时对源代码的语法分析? 而连接时后的解析则是对字节码里面的符号引用解析为直接引用。 两个没有直接必然联系。 |
|
Willam2004
2011-02-08
lz,我最近也在看深入jvm这本书,不知道lz所问的问题是那块章节内容?
|
|
RednaxelaFX
2011-02-08
其实我一直没回复这帖是因为不知道如何回复好…因为看不懂问题,或者说为了说清楚挺麻烦的。如果能用原文来问就好了。
不知道楼主问的是不是[Java源码的编译过程(source compilation)],与[JVM在链接时做的符号解析(resolution)]相关?这里resolution翻译为解析其实很容易引起混乱,有译作“决议”的,意思比较准确但感觉有点怪?不过日文里也是这么翻的。 |
|
chenchao051
2011-02-28
RednaxelaFX 写道 其实我一直没回复这帖是因为不知道如何回复好…因为看不懂问题,或者说为了说清楚挺麻烦的。如果能用原文来问就好了。
不知道楼主问的是不是[Java源码的编译过程(source compilation)],与[JVM在链接时做的符号解析(resolution)]相关?这里resolution翻译为解析其实很容易引起混乱,有译作“决议”的,意思比较准确但感觉有点怪?不过日文里也是这么翻的。 想必对ClassLoader中的 protected void resolveClass(Class<?> c) 方法也感到相当的无语。 |
|
fycghy0803
2011-03-18
编译过程是对源代码(.java文件)变为.class文件的过程,而虚拟机运行时对class的连接阶段的解析,则是对class文件中内容进行验证的过程.如你在编译时,使用到了dom4j.jar中的某个class文件,并且编译时可以找到这个jar包,这些编译就会通过;
但当你运行时,没有在运行路径中加入这个jar包,则解析时就会报相应的classNotFoundException错误! |
|
IcyFenix
2011-03-18
fycghy0803 写道 而虚拟机运行时对class的连接阶段的解析,则是对class文件中内容进行验证的过程
可以说校验是连接阶段做的事情,但是不能说连接阶段做的事情是校验。 |