20161020

来源:互联网 发布:uml画图软件 编辑:程序博客网 时间:2024/06/14 23:10
栈桢结构
  • 局部变量表,存储this,方法参数,局部变量
  • 操作数栈
  • 动态连接,栈桢持有方法引用,指向常量池的符号引用,静态连接在类加载时候将符号引用转化为直接引用,动态连接在运行时将符号引用转化为直接引用
  • 方法返回地址

方法调用
  1. 不同于方法执行,只是确定要调用那个具体的方法
  2. 静态方法:类方法,构造器,私有方法,父类方法,final方法,在类加载的解析阶段将符号引用变成直接引用
  3. 动态方法:变量的静态类型或外观类型,变量的实际类型,
静态分派:方法重载时方法的参数类型不一样,根据参数的静态类型选择要执行的方法,编译期间确定
动态分配:多态的表现,方法重写时,会根据变量的实际类型调用相应的方法,运行时确定
单分派:动态类型单分派
多分派:静态类型多分派,根据变量的静态类型和方法参数分派
  • 动态分派的实现:方法表中有方法的实际地址
  • 静态类型语言:变量有类型
  • 动态类型语言:变量无类型,变量的值才有类型
0 0