栈桢结构
- 局部变量表,存储this,方法参数,局部变量
- 操作数栈
- 动态连接,栈桢持有方法引用,指向常量池的符号引用,静态连接在类加载时候将符号引用转化为直接引用,动态连接在运行时将符号引用转化为直接引用
- 方法返回地址
方法调用
- 不同于方法执行,只是确定要调用那个具体的方法
- 静态方法:类方法,构造器,私有方法,父类方法,final方法,在类加载的解析阶段将符号引用变成直接引用
- 动态方法:变量的静态类型或外观类型,变量的实际类型,
静态分派:方法重载时方法的参数类型不一样,根据参数的静态类型选择要执行的方法,编译期间确定
动态分配:多态的表现,方法重写时,会根据变量的实际类型调用相应的方法,运行时确定
单分派:动态类型单分派
多分派:静态类型多分派,根据变量的静态类型和方法参数分派
- 动态分派的实现:方法表中有方法的实际地址
- 静态类型语言:变量有类型
- 动态类型语言:变量无类型,变量的值才有类型
本文详细介绍了栈桢结构的组成部分,包括局部变量表、操作数栈等,并解释了动态连接的概念及其与静态连接的区别。此外,还探讨了方法调用过程中静态分派与动态分派的工作原理。
351

被折叠的 条评论
为什么被折叠?



