简单来说: 符号引用就是字符串,这个字符串包含足够的信息,以供实际使用时可以找到相应的位置.你比如说某个方法的符号引用,如:“java/io/PrintStream.println:(Ljava/lang/String;)V”.里面有类的信息,方法名,方法参数等信息. 当第一次运行时,要根据字符串的内容,到该类的方法表中搜索这个方法.运行一次之后,符号引用会被替换为直接引用,下次就不用搜索了.直接引用就是偏移量,通过偏移量虚拟机可以直接在该类的内存区域中找到方法字节码的起始位置. 转: 作者:R