Java 栈帧
2016-05-01 12:44
302 查看
结构:
1. 局部变量表:一组变量值的存储空间,用于存放方法参数和方法内的局部变量,编译完成后大小确定,最基本的单位slot,而且slot可以进行重用,一旦某个变量超出其存在的域,其他变量可重用其内存
2. 操作数栈:操作栈(运算),局部变量表(存储)
3. 动态链接:
4. 方法返回地址:正常返回或者异常返回
5. 额外附加信息;
静态解析(编译时确定):static,final,private,构造函数,父类函数
动态绑定(运行时确定):public
如果方法没有被重写,入口地址和父类方法的入口地址一致
否则,子类方法入口地址指向子类方法
动态分派(重写,父子类方法)
单分派:只能调用本类的方法
多分派:可调用本类和父类的方法
Java属于静态多分派,动态单分派:
重载能调用父类和子类的方法,重写只能调用子类的方法
1. 局部变量表:一组变量值的存储空间,用于存放方法参数和方法内的局部变量,编译完成后大小确定,最基本的单位slot,而且slot可以进行重用,一旦某个变量超出其存在的域,其他变量可重用其内存
2. 操作数栈:操作栈(运算),局部变量表(存储)
3. 动态链接:
4. 方法返回地址:正常返回或者异常返回
5. 额外附加信息;
方法调用
方法调用不等于方法执行静态解析(编译时确定):static,final,private,构造函数,父类函数
动态绑定(运行时确定):public
方法表
虚方法表存放着哥哥方法的实际入口:如果方法没有被重写,入口地址和父类方法的入口地址一致
否则,子类方法入口地址指向子类方法
分派
静态分派(重载,类内方法)动态分派(重写,父子类方法)
单分派:只能调用本类的方法
多分派:可调用本类和父类的方法
Java属于静态多分派,动态单分派:
重载能调用父类和子类的方法,重写只能调用子类的方法
相关文章推荐
- spring常量值注入
- JAVA反射
- springmvc上传图片
- MyEclipse 2016 安装/破解
- JAVA多线程之中断机制stop()、interrupted()、isInterrupted()
- Java数据类型及类型转换
- Java数据类型及类型转换
- Spring Boot 乐观锁加锁失败 - 使用AOP恢复错误
- Java通过管道进行进程间通信
- 在Eclipse中导入及部署JavaWeb项目遇到的问题及解决方案
- 20145120 《Java程序设计》第9周学习总结
- Java-Write Once,Run Anywhere
- Eclipse 安装Properties Editor插件
- java操纵bat文件
- [Java视频笔记]day12
- java 反射机制
- springmvc下js控制表单提交(表单提交前检验,提交后获取json返回值)
- Eclipse SDK中一些插件的安装(web开发插件)
- 20145320《Java程序设计》第四次实验报告
- 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0