您的位置:首页 > 编程语言 > Java开发

Java 栈帧

2016-05-01 12:44 302 查看
结构:

1. 局部变量表:一组变量值的存储空间,用于存放方法参数和方法内的局部变量,编译完成后大小确定,最基本的单位slot,而且slot可以进行重用,一旦某个变量超出其存在的域,其他变量可重用其内存

2. 操作数栈:操作栈(运算),局部变量表(存储)

3. 动态链接:

4. 方法返回地址:正常返回或者异常返回

5. 额外附加信息;

方法调用

方法调用不等于方法执行

静态解析(编译时确定):static,final,private,构造函数,父类函数

动态绑定(运行时确定):public

方法表

虚方法表存放着哥哥方法的实际入口:

如果方法没有被重写,入口地址和父类方法的入口地址一致

否则,子类方法入口地址指向子类方法

分派

静态分派(重载,类内方法)

动态分派(重写,父子类方法)

单分派:只能调用本类的方法

多分派:可调用本类和父类的方法

Java属于静态多分派,动态单分派

重载能调用父类和子类的方法,重写只能调用子类的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: