符号引用转换为直接引用
当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译器可知,且运行期保持不变时。这种情况下将调用方法的符号引用转换为直接引用的过程称之为静态链接
总结:知道自己要调用什么东西叫作静态链接
被调用的方法在编译器无法被确定下来,称之为动态链接;表现为多态,参数为父类。传入子类对象。
如果方法在编译期就确定了具体的调用版本,这个版本在运行时是不可变的。这样的方法称为非虚方法。
静态方法、私有方方法、final方法、实例构造器、父类方法都是非虚方法。
其它方法称为虚方法。
不知道是哪个版本,子类的,父类的?接口的?
对变量类型的检查是在编译器还是运行期
就是对所有的方法建立一张索引表,能更快的访问到
ireturn(boolean, byte, char, short, int类型时使用)
lreturn, freturn, dreturn, areturn.
return指令是直接返回void的方法
测试代码:
public void test1(int i){ try{ byte x = 12; double sum = x; }catch (Exception e){ e.printStackTrace(); }finally { return; } }
对程序调试提供支持的信息
JVM虚拟机栈------运行时数据区------方法的调用
原文:https://www.cnblogs.com/sicheng-li/p/12965791.html