码迷,mamicode.com
首页 > 其他好文 > 详细

JVM方法的动态与静态绑定机制

时间:2020-05-30 09:13:24      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:int   jvm   编译   动态   stat   static   输出   类型   system   

在运行时的环境中,通过引用类型变量来访问所引用对象的方法和属性是,JVM采用以下绑定机制:

  1. 实例方法与引用变量实际引用的对象的方法绑定,这种绑定属于动态绑定,因为是在运行时由JVM动态决定的;
  2. 静态方法与引用变量所声明的类型的方法绑定,这种绑定属于静态绑定,因为实际上在编译阶段就已经做了绑定;
  3. 成员变量(包括静态变量和实例变量)与引用变量所声明的类型的成员变量绑定,这种绑定属于静态绑定,因为实际上在编译阶段就已经做了绑定。

例如,以下这段代码:

1 Base who = new Sub();    //who被声明为Base类型,引用Sub实例
2 System.out.println("who.var="+who.var);    //打印Base类的var变量
3 System.out.println("who.staticVar="+who.staticVar);    //打印Base类的staticVar变量
4 who.method();    //打印Sub实例的method()方法
5 who.staticMethod();    //打印Base类的staticMethod()方法

输出结果:

who.var=BaseVar
who.staticVar=StaticBaseVar
Sub method
Static Base method

 

JVM方法的动态与静态绑定机制

标签:int   jvm   编译   动态   stat   static   输出   类型   system   

原文地址:https://www.cnblogs.com/lovesy/p/12990486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!